A few days ago, I posted a question regarding how to update text in Internet Explorer. As it appears, the method used doesn't also works in Firefox.
This made me thinks if there is a way to modify the value of a textarea and update the undo/redo queue as well (calling ctrl-Z
or document.execCommand('undo');
)
So far, I have found two possibilities, but they don't work in all the browsers :
Option 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);
Note: Doesn't seems to work in IE (at all) and Firefox
Option 2 :
document.execCommand("insertText", false, "the text to insert");
Doesn't work in IE (tested under 9, but seems to not be implemented at all), I don't know for the others browsers.