Я интегрировал ckeditor 4.5.1 с domino, и он работает нормально только с одной проблемой. Я добавил пользовательскую кнопку, которая откроет другое окно. Дочернее окно содержит HTML-кнопки, которые будут вставлять ссылки на редактор, используя insertHtml или insertElement. Это хорошо работает для уже сохраненного документа. Но если я вставлю новое содержимое в редактор и вставлю ссылки, используя свое окно пользовательских кнопок, ссылки будут добавляться в одном месте вместо выбранной области. В обоих случаях позиция и диапазон курсора возвращают правильное значение.
function openReferenceDialog(field){
//OpenReferenceDialog(field,'DialogReference',500,500);
fieldname=field
var oEditor = eval('CKEDITOR.instances.' + fieldname);
var mySelection = oEditor.getSelection();
if (CKEDITOR.env.ie) {
mySelection.unlock(false);
selectedText = mySelection.getNative().createRange().text;
} else {
selectedText = mySelection.getNative();
}
//oEditor.lockSelection(mySelection)
range = mySelection.getRanges()[0];
var filepath=document.location.protocol+'//'+document.location.host+'/'+document.forms[0].DbName.value;
dialog=window.open(filepath + '/' + 'DialogCreateNewGraph' + '?Openform&field='+field+"&seltext="+selectedText,'win','scrollbars=1,resizable=1,width=370,height=270');
dialog.focus();
}
Вставка кода в дочернее окно (вне контекста ckeditor)
var CKEdit = window.opener.CKEDITOR;
var oEditor = eval('CKEdit.instances.' + window.opener.fieldname);
var elementHtml = "<a href=\"javascript:OpenCkLink('" + url + "')\">" + txt + "</a>"
alert(window.opener.range.startOffset+"after window")
//oEditor.insertHtml(elementHtml);
element = CKEdit.dom.element.createFromHtml(elementHtml);
oEditor.insertHtml(elementHtml,window.opener.range);
oEditor.insertHtml(" ")
есть ли другой способ добавить текст / ссылки на родительский ckeditor, используя текущую позицию и длину выделенного текста. Пожалуйста, помогите решить проблемы. Пожалуйста, дайте мне знать, если вопрос не ясен.