【发布时间】:2015-10-30 05:14:48
【问题描述】:
我尝试用 contenteditable & execCommand 编写一个编辑器 在 Firefox 上一切正常,但在 chrome 中,“删除”命令出错。
请查看以下照片:
这是我的代码:
var $obj = $('#myBlockDivId');
var selection = rangy.getSelection();
if (selection.rangeCount > 0) selection.removeAllRanges();
var range = rangy.createRange();
range.selectNode($obj[0]);
selection.addRange(range);
range.select();
当我控制台日志:rangy.getSelection().toHtml() ==> 是正确的
但是当我打电话时:
document.execCommand("delete", null, false);
在 Firefox 上没问题,但在 Chrome 上不行,包装器 div 没有被删除。
我该如何解决这个问题?我必须使用 execCommand 因为它支持撤消和重做功能。所以,我不能使用 jquery 或 javascript dom 选择器来删除 div。
(我的英语不好,请有人更清楚地编辑我的问题,非常感谢)
【问题讨论】:
-
您能否在jsFiddle 上发布非工作代码的示例?
-
错误是什么?可以发一下吗?
-
如果没有代码示例(尤其是 HTML),所有的答案都是猜测。请注意,有一个使用 Stack Snippets 的答案。请使用相同的方法,编辑您的问题以包含 HTML 和 JavaScript。
标签: javascript google-chrome contenteditable rangy execcommand