经过一些调查后,我得出结论,即对textareas中的撤消/重做分组(*),将对文档进行任何修改都将使其无效。
1)确实是这样吗?这是“规范”行为吗?究竟是什么破坏了撤消/重做分组?
2)有什么可以解决的吗?例如,将要更改的部分标记为非数据,非模型,即不是“真实状态”的一部分(我想这里的想法有点像Shadow DOM)。
(*)通过“撤消/重做”分组,我的意思是通常可以撤消或重做一堆键入的字符或许多退格操作。
这对保持良好的撤消/重做效果非常有用,同时可以任意提供反馈,例如,在对要编辑的文本区域进行每次更改之后。
编辑:发现在Safari(而不是旧版本,不知道当前版本)中,这不会中断,撤消/重做分组有效。发现了上述问题,并在Chrome-78中进行了测试。因此,我想这可能不是标准/规范的事情。
我还找到了一篇文章,介绍了撤消/重做队列以及如何对其进行修改。我认为可以解决此问题,但这仍然是额外的工作。
https://dev.to/chromiumdev/-native-undo--redo-for-the-web-3fl3