更改 <textarea> 的值并允许用户撤消

12M*_*e21 5 html javascript firefox textarea undo-redo

过去,当您使用 javascript设置valuea 时textarea,Firefox 允许用户撤消此更改(例如,通过按 ctrl+Z)。但是,这不再有效,并且似乎没有任何体面的替代方案。

我已经尝试使用document.execCommand修改的textarea,但是这需要你自己来选择要修改的文本,它不会出现有可能在自动选择文本textarea

我也听说过,document.createEvent("TextEvent")但我找不到关于此的太多信息。看来只能在光标处插入文本,我也需要删除文本。

创建我自己的撤消/重做系统并捕获ctrl+ Z/Y按下不是一个可接受的解决方案。

这里已经问过类似的问题,但它们只涉及在光标处插入文本,而不是完全改变 textarea 的值。

Jim*_*Kye 1

您可以使用setSelectionRangeAPI 手动操作文本区域的选择。textarea.selectionStart从和获取原始值textarea.selectionEnd