我现在在网上看了几天,但我似乎无法找到,我如何才能找到插入符号是否正在触摸元素。让我用这个例子更好地解释一下自己。
This is a[ ] <span>example</span>
作为示例,我们说插入符号是标签 [ ]。现在我们想知道插入符号是否靠近 span 元素?我们怎样才能找到这个?我还需要知道 span 元素是在插入符号之前还是之后。
我正在使用 CKEDITOR 4.0 api 执行此操作。
试试这个:
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.getNextNode();
range.getPreviousNode();
毕竟,一旦有了节点,就可以检查它:
var node = range.getNextNode();
console.log( node.type == CKEDITOR.NODE_ELEMENT && node.is( 'span' ) );