我正在尝试使用 TextEvent/textInput 事件替换文本区域中的文本,如下所示:
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 系统。