寻找感动的元素CKEDITOR

时间:2013-02-26 08:39:15

标签: ckeditor range nodes

我现在正在网上看几天,但我似乎无法找到,如果插入符号触及元素我怎么能找到。让我用这个例子来解释一下自己。

This is a[ ] <span>example</span>

例如,我们说插入符号是标记[]。 现在我们想知道插入符号是否接近跨度元素? 我们怎么能找到这个?另外,我需要知道span元素是否在插入符之前或之后。

我正在用CKEDITOR 4.0 api做这个..

1 个答案:

答案 0 :(得分:3)

试试这个:

var range = CKEDITOR.instances.yourEditorInstance.getSelection().getRanges()[ 0 ];
range.optimize();
console.log( range.getBoundaryNodes() );

此外:

console.log( range.getTouchedEndNode() );
console.log( range.getTouchedStartNode() );

请注意,您的范围可能位于元素内部(如 e4 ,下图),因此边界节点将始终为文本节点。请查看DOM range specification了解更多信息。

enter image description here


编辑:这些也值得一试:

range.getNextNode();
range.getPreviousNode();

毕竟,一旦你有了节点,就可以检查它:

var node = range.getNextNode();
console.log( node.type == CKEDITOR.NODE_ELEMENT && node.is( 'span' ) );