how to select a text range in CKEDITOR programatically?

不羁岁月 提交于 2019-11-30 20:34:17

Get current selection

var editor = CKEDITOR.instances["id_corpo"];
var sel = editor.getSelection();

Change the selection to the current element

var element = sel.getStartElement();
sel.selectElement(element);

Move the range to the text you would like to select

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

You can also do the following:

get the current selection

var selection = editor.getSelection();
var selectedElement = selection.getSelectedElement();

if nothing is selected then create a new paragraf element

if (!selectedElement)
    selectedElement = new CKEDITOR.dom.element('p');

Insert your content into the element

selectedElement.setHtml(someHtml);

If needed, insert your element into the dom (it will be inserted into the current position)

editor.insertElement(selectedElement);

and then just select it

selection.selectElement(selectedElement);

Check out the selectElement() method of CKEDITOR.dom.selection.

http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dom.selection.html

insert text at cursor point in ck editor

  • function insertVar(myValue) { CKEDITOR.instances['editor1'].fire( 'insertText',myValue); }

    this is working for me

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!