使用 CKEditors 更改两个 div 的顺序
Changing order of two divs with CKEditors
我有两个 CKEditor,由 Liferay 脚本创建,在我看来是一个接一个。两者都在单独的 div 中。我想改变它的顺序。
我尝试使用这样的东西:
var firstDivWithCKEditor = document.getElementById("firstDivWithCKEditor");
var secondDivWithCKEditor = document.getElementById("secondDivWithCKEditor ");
var parentDiv = secondDivWithCKEditor.parentNode();
parent.insertBefore(secondDivWithCKEditor , firstDivWithCKEditor);
顺序变了,但是在这个操作之后我不能用一个编辑器做任何事情,编辑器里面的html消失了。单击编辑器中的任何按钮后,控制台出现错误:Uncaught TypeError: Cannot read 属性 'getSelection' of undefined。
有人知道哪里出了问题吗?
经典(基于iframe
)编辑器实例无法做到这一点。不过,您可以轻松地重新初始化您的实例 (JSFiddle):
var e1, e2,
el1 = CKEDITOR.document.getById( 'editor1' ),
el2 = CKEDITOR.document.getById( 'editor2' );
function initEditors( reverse ) {
if ( e1 || e2 ) {
e1.destroy();
e2.destroy();
}
( reverse ? el2 : el1 ).insertBefore( ( reverse ? el1 : el2 ) );
e1 = CKEDITOR.replace( el1 );
e2 = CKEDITOR.replace( el2 );
}
我有两个 CKEditor,由 Liferay 脚本创建,在我看来是一个接一个。两者都在单独的 div 中。我想改变它的顺序。
我尝试使用这样的东西:
var firstDivWithCKEditor = document.getElementById("firstDivWithCKEditor");
var secondDivWithCKEditor = document.getElementById("secondDivWithCKEditor ");
var parentDiv = secondDivWithCKEditor.parentNode();
parent.insertBefore(secondDivWithCKEditor , firstDivWithCKEditor);
顺序变了,但是在这个操作之后我不能用一个编辑器做任何事情,编辑器里面的html消失了。单击编辑器中的任何按钮后,控制台出现错误:Uncaught TypeError: Cannot read 属性 'getSelection' of undefined。
有人知道哪里出了问题吗?
经典(基于iframe
)编辑器实例无法做到这一点。不过,您可以轻松地重新初始化您的实例 (JSFiddle):
var e1, e2,
el1 = CKEDITOR.document.getById( 'editor1' ),
el2 = CKEDITOR.document.getById( 'editor2' );
function initEditors( reverse ) {
if ( e1 || e2 ) {
e1.destroy();
e2.destroy();
}
( reverse ? el2 : el1 ).insertBefore( ( reverse ? el1 : el2 ) );
e1 = CKEDITOR.replace( el1 );
e2 = CKEDITOR.replace( el2 );
}