我正在尝试使用像这样的TextEvent / textInput事件替换textarea中的文本:
var textarea = $('#my_textarea'),
text = "Hello world !",
selection = {'start': 4, 'end': 6};
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);
这在Chrome中运行良好,但在Internet Explorer 9中无效:文本部分选择良好,但不会更改。
我按照这里写的内容:Javascript textarea undo redo和http://help.dottoro.com/ljuecqgv.php没有任何运气。
我错过了什么?
注意:我正在使用TextEvent而不是仅通过val()
替换文本,因为我想使用Undo / Redo系统。