簡體   English   中英

Ckeditor查找並選擇文本

[英]Ckeditor find and select text

我想做的是在一個單詞上創建一個選擇(類似於chrome上的CTRL + F ),

我在這一點上

var editor = CKEDITOR.instances.editor1;
var sel = editor.getSelection();
var element = sel.getStartElement();
var find = '[valor]';
var ranges = editor.getSelection().getRanges();
var startIndex = element.getHtml().indexOf(find);
if (startIndex != -1) {
    ranges[0].setStart(element.getFirst(), startIndex);
    ranges[0].setEnd(element.getFirst(), startIndex + find.length);
    sel.selectRanges([ranges[0]]);
}

這很好,它只有1個問題。 它只選擇我所在行的文本,我希望它在所有ckeditor文本上找到第一個匹配項

最后,我可以解決這個問題,我所要做的就是從編輯器中獲取所有textnode,然后在節點上搜索單詞並將它們放入數組中,如下所示:

for ( i = textNodes.length; i--; ) {
text = textNodes[ i ];
index = text.getText().toLowerCase().indexOf( wordtosearch );

if ( index > -1 ) {

while (index > -1) {

    range = editor.createRange();
    range.setStart( text, index );
    range.setEnd( text, index + wordtosearch.length); 
    ranges.push( range );

    index= text.getText().indexOf( wordtosearch , index+wordtosearch.length );
}
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM