gpt4 book ai didi

javascript - CKEDITOR : Select text using start , 结束索引位置

转载 作者:行者123 更新时间:2023-11-30 20:59:56 26 4
gpt4 key购买 nike

如何使用文本索引位置选择特定文本?

我在编辑器中有一个段落,我只是尝试使用索引位置选择一个文本,我该怎么做?

示例

<p>My Tes<b>ti</b>ng Point</p>

我想使用它们的索引位置 4 和 11 选择 Testing 。我正在使用下面的代码来实现这一点。但它根本不起作用。

    var editor = CKEDITOR.instances.editor1;
range = editor.createRange();
range.setStart(4);
range.setEnd(11);
editor.getSelection().selectRanges([range]);

拜托,任何人都可以帮助我。

注意:

如果我使用文本节点 概念,那么不应选择文本。

最佳答案

请记住,CKEditor 内容是 HTML 数据,它不是扁平的,而是更像树结构,因此不可能仅使用索引来简单地设置选择。

正如您在 range.setStart 的文档中看到的那样和 range.setEnd它需要两个参数startNode/endNodestartOffset/endOffset。偏移量始终相对于特定元素设置,而不是绝对相对于内容的开头。

在您的情况下,您应该首先找到特定元素,然后相对于这些元素设置偏移量:

var editable = editor.editable(),
startNode = editable.findOne( 'p' ),
endNode = startNode,
range = editor.createRange();

range.setStart( startNode.getChild( 0 ), 4 ); // Get first child which is text node "My Tes".
range.setEnd( endNode.getChild( 2 ), 2 ); // Get third child which is text node "ng Point".
editor.getSelection().selectRanges( [ range ] );

关于javascript - CKEDITOR : Select text using start , 结束索引位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47235340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com