从弹出窗口将HTML插入CKeditor

时间:2012-06-26 17:06:55

标签: javascript jquery ckeditor

我创建了一个调用外部弹出窗口的插件:

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');
});

3 个答案:

答案 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');

这也意味着如果页面上有多个编辑器,弹出窗口将与打开窗口的实例相关。