CKEditor 4 或以上
我有启用 CKEditor 并运行的表单 > 文本区域。
我在模态对话框中有 iframe,在 iframe 里面是带有 insert_media() javascript 函数的按钮。
function insert_media( element ) {
// get element html decode
element = htmlspecialchars_decode( element, 'ENT_QUOTES' );
// htmlspecialchars_decode is external function.
// CKEditor insert element ---------------------------------------------
// use .insertElement()
var CKEDITOR = window.parent.CKEDITOR;
var element = CKEDITOR.dom.element.createFromHtml(element);
// body_value is name of textarea
// this code only works with specific textarea NOT current active textarea
//CKEDITOR.instances.body_value.insertElement(element);
var current_instance_ckeditor = window.parent.test_current();
// CKEditor insert element ---------------------------------------------
// close modal dialog at parent window
window.parent.close_dialog();
// done
return false;
}// insert_media
这是主页html中的javascript
function close_dialog() {
$('#media-modal').modal('hide');
}// close_dialog
function test_current() {
console.log( CKEDITOR.currentInstance.name );
}
问题是我无法让当前活动的 CKEditor使用 insertElement 命令插入元素。
CKEDITOR.currentInstance 未定义或为空
window.parent.CKEDITOR.currentInstance 未定义或为空
如何从 iframe获取当前活动的 CKEditor ?
测试文件:http ://www.megafileupload.com/en/file/420060/test-ckeditor-zip.html