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

标签 javascript html firefox textarea undo-redo

过去,当您使用 javascript 设置 textareavalue 时,Firefox 允许用户撤消此更改(例如,通过按 ctrl+Z) .然而,这不再有效,而且似乎没有任何合适的替代方案。

我试过使用document.execCommand修改textarea,但是这需要你选择你想修改的文本,而且它没有出现可以自动选择 textarea 中的文本。

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

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

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

最佳答案

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

关于javascript - 更改 <textarea> 的值并允许用户撤消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51796009/

相关文章:

javascript - 无效的非字符串/缓冲区 block Node.js

javascript - 组织 JavaScript 代码以使其在 Eclipse Outline 中可见

jquery - 下拉菜单闪烁,Firefox 除外

javascript - amCharts 4 CDN 网::ERR_FILE_NOT_FOUND

javascript - 在我的网站上流式传输音频

jquery - 浏览器:按下转义键后继续 gif 动画

android - 安卓装机如何实现首页最佳显示?

javascript - 根据复选框检查删除文本框值

javascript - 使用 fileReader 读取多张图像

javascript - jQuery 自动完成悬停样式