几天前,我发布了一个关于如何在 Internet Explorer 中更新文本的问题。看起来,所使用的方法在 Firefox 中也不起作用。
这让我想到是否有办法修改文本区域的值并更新撤消/重做队列(调用ctrl-Z
或document.execCommand('undo');
)
到目前为止,我发现了两种可能性,但它们并不适用于所有浏览器:
选项1:
var event = document.createEvent('TextEvent');
event.initTextEvent('textInput', true, true, null, text, 9, "en-US");
textarea.focus();
textarea[0].setSelectionRange(selection.start, selection.end);
textarea[0].dispatchEvent(event);
注意:在 IE(根本)和 Firefox 中似乎不起作用
选项 2:
document.execCommand("insertText", false, "the text to insert");
在 IE 中不起作用(在 9 下测试,但似乎根本没有实现),我不知道其他浏览器。