我想用JS来实现基本的富文本编辑功能,给标签加上contenteditable属性,用document.execCommand基本上能满足编辑的需要了,但是触发事件鼠标的选中区域会取消,就不能针对选中的文本进行编辑了,这个问题有办法解决吗?
我想用JS来实现基本的富文本编辑功能,给标签加上contenteditable属性,用document.execCommand基本上能满足编辑的需要了,但是触发事件鼠标的选中区域会取消,就不能针对选中的文本进行编辑了,这个问题有办法解决吗?
有一种思路:
var sel = getSelection(),var range;
当在编辑区域发生鼠标或者键盘事件后应该保存当前的range:
range = sel.getRangeAt(0);
当想编辑文本时:
sel.removeAllRanges();
sel.addRange(ran);
document.execCommand('type');
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答1.9k 阅读
思路1:
给触发动作的按钮或者元素添加css3样式 user-select:none; 让其不能获取光标。
思路2:
给触发动作的按钮或者元素添加属性 unselectable="on" 让其不能获取光标。
思路3:
如楼上所述的方法~
做编辑器的工具按钮尽量不要使用<a标签,可以使用button或div之类无浏览器行为的标签。