2013-12-17 2 views
1

Это довольно простой JavaScript вызов:Получить идентификатор пункта внутри CKEditor 4

CKEDITOR.instances.yourEditorInstance.getData() 

возвращений:

<p id="rand_dom_123">Python A B C</p> 
<p id="rand_dom_852">PHP A B C D E F</p> 

Однако:

CKEDITOR.instances.yourEditorInstance.editable().getText() 

возвращений:

Python A B C 
PHP A B C D E F 

Это мой код:

$('.jquery_ckeditor').ckeditor(config); 

    CKEDITOR.instances['editor'].on('blur', function() {     
     var html_content = CKEDITOR.instances['editor'].getSelection().getSelectedText() ; 
     alert(html_content); 
    }); 

Как я могу получить ID выбранного пункта? Пример можно узнать пункт идентификатор, если я выбрал A B C

ответ

1

Вы можете получить доступ к е документ DOM

CKEDITOR.instances['editor'].on('blur', function() {     
     var html_content = CKEDITOR.instances['editor'].document.$.getElementById('myId') ; 
     alert(html_content); 
}); 

или вы можете использовать CKEditor DOM

var element = new CKEDITOR.dom.element(document.getElementById('myId')); 

--- обновление ---

, если вы хотите только выбор, чем вы можете enumarate в range:

var ranges = CKEDITOR.instances['editor'].getSelection().getRanges(); 

for (var i = 0, len = ranges.length; i < len; ++i) { 
    //dig into ranges[i] 
} 
+0

Проблема в том, что я хочу получить идентификатор выбранного абзаца. – kn3l

+0

@BandOfBrothers использует диапазоны – giammin

+0

var html_content = CKEDITOR.instances ['editor']. GetSelection(). GetRanges(). CreateIterator(); \t \t \t ID = html_content.getAttribute ('id'); \t \t \t alert (id); Не работает. – kn3l

1

Вот обновленный скрипку для вас ..

http://jsfiddle.net/wfLPg/1/

Jquery:

var editor = CKEDITOR.instances['my-editor']; 
var value = CKEDITOR.instances['my-editor'].editable().getText(); 
alert(value); // will return both p element texts 

var firstPElement = $(editor.editable().$).find('p:eq(0)'); // will select first p element 
alert(firstPElement.attr("id")); // will get first p element ID 

var secondPElement = $(editor.editable().$).find('p:eq(1)'); // will select second p element 
alert(secondPElement.attr("id")); // will get second p element ID 

Примечание: $(editor.editable().$): - извлекает родной Элемент DOM для редактирования редактируемой области для jQuery для использования в качестве элемента

+0

Я использую CKEditor 4 – kn3l

+0

Что такое 'элемент' для вашего дела? является выбранным абзацем? – kn3l

+0

Посмотрите мою обновленную скрипку и ответьте ... –

Смежные вопросы