【问题标题】:Change the value of a <textarea> and allow the user to undo更改 <textarea> 的值并允许用户撤消
【发布时间】:2019-01-18 15:07:34
【问题描述】:

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

我尝试使用document.execCommand 修改textarea,但这需要您选择要修改的文本,并且似乎无法自动选择textarea 中的文本.

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

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

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

【问题讨论】:

    标签: javascript html firefox textarea undo-redo


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-03-28
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2019-01-18
      • 2013-11-30
      • 2017-06-03
      • 2016-12-10
      • 2012-08-23
      相关资源
      最近更新 更多