如何在编辑框中插入文本

lostapple 2004-11-03 11:32:07
一个TEXTAREA,在输入文本的时候,点击旁边的图片,就往TEXTAREA中插入相应的文本(要可以插入,不是添到文本最后,也就是说还要取得文本编辑的插入点),用JS怎么实现?请给出可用的程序码(那个settext程序)。谢谢,分不够可再加。

<textarea name="content" rows="20" cols="60"></textarea>
<a onclick="settext('test'); return false;"><img src="1.gif"></a>
...全文
114 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qilincheng 2004-11-05
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<SCRIPT>
function storeCaret (textEl) {
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text) {
if (textEl.createTextRange && textEl.caretPos) {
var caretPos = textEl.caretPos;
caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?text + ' ' : text;
}
else
textEl.value = text;

}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="aForm">
<TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);"

ONKEYUP="storeCaret(this);"> 这是例子,你可以在这里添加文字、插入文字。 </TEXTAREA>
<BR>
<INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="我要在光标处插入这些文字"><BR>
<a onclick="insertAtCaret(aTextArea, aText.value);" onmouseover="this.style.cursor='hand';">我要在光标处插入上面文本框里输入

的文字!</a>
</FORM>
</BODY>
</HTML>
lidelu 2004-11-04
  • 打赏
  • 举报
回复
fason(咖啡人生) 的答案不是很好吗 我试了都可以用的
lostapple 2004-11-04
  • 打赏
  • 举报
回复
没人知道了吗?
yaohai 2004-11-03
  • 打赏
  • 举报
回复
学习!帮顶~
qilincheng 2004-11-03
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<SCRIPT>
function storeCaret (textEl) {
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text) {
if (textEl.createTextRange && textEl.caretPos) {
var caretPos = textEl.caretPos;
caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?text + ' ' : text;
}
else
textEl.value = text;

}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="aForm">
<TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);"> 这是例子,你可以在这里添加文字、插入文字。 </TEXTAREA>
<BR>
<INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="我要在光标处插入这些文字"><BR>
<INPUT TYPE="button" VALUE="我要在光标处插入上面文本框里输入的文字!" ONCLICK="insertAtCaret(this.form.aTextArea, this.form.aText.value);">
</FORM>
</BODY>
</HTML>
fason 2004-11-03
  • 打赏
  • 举报
回复
function settext(str){
content.focus();
document.selection.createRange().text=str;
}
lostapple 2004-11-03
  • 打赏
  • 举报
回复
顶顶。
lostapple 2004-11-03
  • 打赏
  • 举报
回复
qilincheng(渺渺过客)的可以运行达到效果。
但是好像只能用在BUTTON之类对象上,用在我以上的代码中,即把onclick 放在<a>或者<img>标签里的话,IE提示 this.form.content为空或不是对象?
何解?谢谢!

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧