我创建了一个调用外部弹出窗口的插件:
exec : function( editor )
{
window.open('index.php?mod=xxxx','Name popup','width=900,height=600');
}
那部分很好用。如何将数据发送回CKeditor?我想在jedery的CKeditor开启器实例上的当前位置附加一些HTML。
我试过这个,但它不起作用:
$('a#clickMe').click(function()
{
window.opener.CKeditor.insertHtml('Bla bla bla');
});
答案 0 :(得分:2)
找到了一种方法:
exec : function( editor )
{
window.open('index.php?mod=xxxx&CKEditor='+CKEDITOR.currentInstance.name,'Name popup','width=900,height=600');
}
然后将$ _GET ['CKEditor']传递给元素'rel'属性。
Html:
<a id="clickMe" rel="<?=$_GET['CKEditor']?>">click me</a>
jQuery的:
$('a#clickMe').click(function(){
var editor = $(this).attr("rel");
window.opener.CKEDITOR.instances[editor].insertHtml('bla bla');
});
答案 1 :(得分:0)
尝试:
window.opener.CKEDITOR.instances.nameOfYourInstance.insertHtml( 'bla bla' );
然而,我不知道如果没有聚焦编辑器,它将始终有效。您应该使用CKEditor的对话框API。
答案 2 :(得分:0)
没有GET变量的方法 - 在javascript中添加一个全局变量(例如在config.js文件中)
var myEditorInstance;
然后在插件中
exec : function( editor )
{
myEditorInstance=editor;
window.open('index.php?mod=xxxx','Name popup','width=900,height=600');
}
然后,您可以使用
从弹出窗口中进行此操作window.opener.myEditorInstance.insertHtml('Bla bla bla');
这也意味着如果页面上有多个编辑器,弹出窗口将与打开窗口的实例相关。