如果放置光标,我想在光标位置的textarea中插入文本,否则文本应该附加在IE中现有文本的末尾。
我已经使用过这个在mozilla中工作正常的函数,但不是在它附加在现有文本的起始位置的情况下。
function insertAtCursor(text) {
var field = document.frmMain.Expression;
if (document.selection) {
field.focus();
sel = document.selection.createRange();
sel.text = text;
}
}
我想在现有文本的末尾附加文本,即如果没有放置光标。
答案 0 :(得分:3)
检查字段是否已经具有焦点,如果是,则使用从选择中生成的TextRange
。如果没有,请为该字段创建TextRange
并将其折叠到最后。
您似乎没有任何代码可以在其他浏览器中的光标处插入文本,但也许您可以将其留下。
现场演示:http://jsbin.com/ixoyes/2
代码:
function insertAtCursor(text) {
var field = document.frmMain.Expression;
if (document.selection) {
var range = document.selection.createRange();
if (!range || range.parentElement() != field) {
field.focus();
range = field.createTextRange();
range.collapse(false);
}
range.text = text;
range.collapse(false);
range.select();
}
}