Javascript实现点击插入内容到textarea光标处
本文用JavaScript实现在textarea光标处插入指定文本内容以及字符串。
点击按钮,可以把按钮的内容插入到textarea文本框内光标处,光标默认在文本框开头。
通过其他的js就可以实现文本框插入表情、选中文字加粗、内容中插入图片等等。
>>>【演示地址】
HTML代码:
<formid="form1"name="form1"method="post"action="">
<label>
<textareaname="text"id="text"cols="45"rows="10">
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
这是测试内容,请在任意位置插入内容。
</textarea>
<aid="insert"href="javascript:void(0);">{PHPcodehere}</a>
</label>
</form>
Javascript代码:
<scripttype="text/javascript">
vartext=document.getElementById('text');
varinsert=document.getElementById('insert');
insert.onclick=function(){
insertAtCursor(text,this.innerHTML);
};
functioninsertAtCursor(myField,myValue){
if(document.selection){
//IEsupport
myField.focus();
sel=document.selection.createRange();
sel.text=myValue;
sel.select();
}elseif(myField.selectionStart||myField.selectionStart=='0'){
//MOZILLA/NETSCAPEsupport
varstartPos=myField.selectionStart;
varendPos=myField.selectionEnd;
varbeforeValue=myField.value.substring(0,startPos);
varafterValue=myField.value.substring(endPos,myField.value.length);
myField.value=beforeValue+myValue+afterValue;
myField.selectionStart=startPos+myValue.length;
myField.selectionEnd=startPos+myValue.length;
myField.focus();
}else{
myField.value+=myValue;
myField.focus();
}
}
</script>
参考资料:
- Inserttextintotextareaatcursorposition(Javascript)
- jquery在textarea光标处插入内容