选择时为什么删除对CKEDITOR不起作用?

时间:2013-09-08 07:22:36

标签: ckeditor

我有一个内联的可编辑div。我可以输入,删除,添加。效果很好。我希望在div中选择文本(或者如果你点击它)。所以我在代码中添加了以下内容

var editor = CKEDITOR.instances.div#{attr};
var element = editor.document.getById('div#{attr}');
editor.getSelection().selectElement( element );

这也有效。完全选择焦点。但是,如果我按删除键或任何其他字符键来覆盖以编程方式选择的文本,它不会更改。这就好像只选择了文本,浏览器不允许我删除它。如果我手动选择文本,它就可以工作。

1 个答案:

答案 0 :(得分:1)

selection#selectElement方法将在传递元素之前开始选择,并在它之后结束。这意味着不仅会选择可编辑的内容,还会选择不可编辑的内容部分,因此选择可能无法编辑。

这是一个正确的解决方案:

var editor = CKEDITOR.instances.editable,
    el = CKEDITOR.document.getById( 'editable' ),
    range = editor.createRange();

editor.focus();
range.selectNodeContents( el );
range.select();

但最简单的解决方案是使用selectall插件中定义的selectAll命令:

editor.execCommand( 'selectAll' );