Яркий маркер в редакторе tinymce wysiwyg iframe
Я работаю над какой-то маркировкой выделенного текста и инструментом аннотации для текстовых документов в редакторе TinyMCE. Я сделал это, обернув выделенный текст в s, но когда текст содержит некоторый вложенный HTML, он часто ломается. Я попытался обойти эту проблему, используя нестандартную библиотеку, в которой есть модуль подсветки, который делает именно то, что мне нужно, и хотя я могу заставить его работать на обычной странице, я не могу заставить его работать в TinyMCE.
Вот пример кода:
<script>
$(document).ready(function(){
tinymce.init({
selector : 'textarea',
//content_css : "css/tinymcecss.css",
setup : function(editor){
editor.on('init', function(event)
{
var iframeMce = $('#mce_0_ifr')[0];
rangy.init();
highlighter = rangy.createHighlighter(iframeMce);
highlighter.addClassApplier(rangy.createClassApplier("highlight", {
ignoreWhiteSpace: true,
tagNames: ["span", "a"]
}));
$('#sl-highlight').on('click', function(){
var selection = rangy.getSelection(iframeMce);
highlighter.highlightSelection('highlight', {
selection : selection,
exclusive : true
});
});
});
}
});
});
Что мне удалось выяснить, так это то, что я должен передать селектор iframe в качестве параметра при создании модуля подсветки. и передавая выделение в качестве параметра для функции выделения выделения, но это не работает, я получаю ошибку "TypeError: Аргумент 1 из Range.setStart не является объектом". Я попытался передать выбор TinyMCE как объект выбора, но это не сработало.
Есть идеи???
Обновление: фактически это не будет работать независимо от TinyMCE. Я попробовал то же самое с одним абзацем в iframe и получаю ту же ошибку, что и раньше.