Javascript CKEditor Walker仅获取选择

Javascript CKEditor Walker仅获取选择,javascript,ckeditor,Javascript,Ckeditor,我试图在按backspace键时将所选内容包装起来。现在按键部分已经开始工作了,但现在我正在尝试将所选内容包装在一个范围内。。当选择中存在块元素时也是如此。但我注意到,在CKEDITOR 4中,walker获得的是完整的元素,而不是仅选择的部分 上的文档说明了另一种情况,它说它将打断元素以显示块边界,但为什么它不工作呢 到目前为止,我的代码是: var walker = new CKEDITOR.dom.walker( editor.getSelection().getRanges()[0] )

我试图在按backspace键时将所选内容包装起来。现在按键部分已经开始工作了,但现在我正在尝试将所选内容包装在一个范围内。。当选择中存在块元素时也是如此。但我注意到,在CKEDITOR 4中,walker获得的是完整的元素,而不是仅选择的部分

上的文档说明了另一种情况,它说它将打断元素以显示块边界,但为什么它不工作呢

到目前为止,我的代码是:

var walker = new CKEDITOR.dom.walker( editor.getSelection().getRanges()[0] ), node;
walker.evaluator = function(node){
    node = "<span name='wasSelected'>" + node.getText()+ "</span>";
    return true;
};
walker.checkBackward();
var walker=new CKEDITOR.dom.walker(editor.getSelection().getRanges()[0]),节点;
walker.evaluator=函数(节点){
node=“”+node.getText()+”;
返回true;
};
walker.checkBackward();
注: 这是为了回答我之前发布的一个问题:


这个问题现在已经有了解决方案,但我仍然想知道为什么它没有做到api所说的。我做错什么了吗?

嗯。。。我猜文档是错的。我创建了一张罚单,我将很快进行调查:


无论如何,AFAIK walker不会对包含节点的片段调用evaluator。它在每个进入的节点上调用evaluator。我还没有发现任何可以改变DOM代码的东西。

而且我知道node=“element”行;不行。。但我指的是这样一个事实,即evaluator node变量在只选择了节点文本的一部分时返回完整节点。我知道,我在查找文本节点;)如果你知道,那么我不明白你的问题:p我想回答的问题是最后一个。。就像我写的。这个问题已经有了答案。但我还是想知道为什么它没有按照杜克墨申说的做。我想你正在研究这个问题。指的是你的票?我想这只是一个过时的文件。我不是100%确定,因为我是CKEditor核心开发人员,只工作了大约1.5年,所以我不知道这个类的全部历史。如果你猜可以添加这个,那就太好了,因为在我的情况下,它正是我需要的。但是applyStyle函数现在起作用了。。唯一的想法是,您应该在selection元素下使用该函数。不在编辑下面……但我想这是一个有点离题的评论