Javascript textarea撤销重做

前端之家收集整理的这篇文章主要介绍了Javascript textarea撤销重做前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在制作一个小的 javascript编辑器(对于Chrome扩展),有点像SO上的.

有一个工具栏来处理textarea中的文本. (例如,用某些模板围绕所选文本)

我想知道是否有一个简单的方法来实现这一点,目前使用系统撤消/重做时,它会混淆文本(我认为系统只跟踪编辑之间的三角洲).

解决方法

您可以模拟textInput事件来操作textarea的内容.这样做的改变是通过撤消/重做来尊重的,我想(我知道他们在Safari中)
var element = document.getElementById('someTextarea');
var text = 'This text will be inserted in the textarea';
var event = document.createEvent('TextEvent');

event.initTextEvent('textInput',true,null,text);
element.dispatchEvent(event); // fire the event on the the textarea

基本上,文本被插入,好像你自己粘贴了.所以如果选择了某些东西,它将被替换为文本.如果没有选择,文本将被插入插入符号的位置.并且撤消/重做应该正常工作(一次删除/重做整个插入的字符串),因为浏览器就像您自己键入/粘贴一样.

正如我所说,我知道这在Safari中具有撤销/重做的魅力,所以我认为它也适用于Chrome.

原文链接:https://www.f2er.com/js/152734.html

猜你在找的JavaScript相关文章