2012-06-26 62 views
0

我創建插件調用外部的彈出窗口:HTML插入CKEDITOR從彈出的窗口中

exec : function(editor) 
{ 
    window.open('index.php?mod=xxxx','Name popup','width=900,height=600'); 
} 

這部分工作良好。如何將數據發回CKeditor?我想用jquery在CKeditor的opener實例的當前位置附加一些HTML。

我已經試過這一點,但它不工作:

$('a#clickMe').click(function() 
{ 
    window.opener.CKeditor.insertHtml('Bla bla bla'); 
}); 

回答

0

嘗試:

window.opener.CKEDITOR.instances.nameOfYourInstance.insertHtml('bla bla'); 

不過,我不知道,如果不注重編輯器首先,它會永遠工作。你應該使用CKEditor的對話框API。

2

找到一種方法來做到這一點:

exec : function(editor) 
{ 
    window.open('index.php?mod=xxxx&CKEditor='+CKEDITOR.currentInstance.name,'Name popup','width=900,height=600'); 
} 

然後將通過$ _GET [ 'CKEditor的']爲元素 '相對' 屬性。

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

這也意味着,如果你在頁面上多個編輯器達到這個,彈出涉及打開窗口中的實例。