0

我现在在网上看了几天,但我似乎无法找到,我如何才能找到插入符号是否正在触摸元素。让我用这个例子更好地解释一下自己。

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

作为示例,我们说插入符号是标签 [ ]。现在我们想知道插入符号是否靠近 span 元素?我们怎样才能找到这个?我还需要知道 span 元素是在插入符号之前还是之后。

我正在使用 CKEDITOR 4.0 api 执行此操作。

4

1 回答 1

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.getNextNode();
range.getPreviousNode();

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

var node = range.getNextNode();
console.log( node.type == CKEDITOR.NODE_ELEMENT && node.is( 'span' ) );
于 2013-02-26T11:08:04.190 回答