微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/js/152734.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐