2014-01-06 48 views
0

任何專家都可以請回復綁定的Javascript事件到Joomla MCE編輯

直到現在我挖掘出關於Joomla編輯器是

它屬於微小MCE

它使用iframe與CONTENTEDITABLE body標籤。

現在我想要做的是將keyup事件附加到iframe的主體。但不成功。我所嘗試的是如下。

myEditorField_ifr是我通過Google檢查元素方法的iframe id,雖然myEditorField是我使用JFORM方法分配的id。

方法一

 $('#myEditorField_ifr').contents().find('body').on('keyup',function(e) { 
     alert('bingo?'); 
    }); 
    unsuccessful 

而且下面的方法與我的另一個iframe中工作也沒有用了tinyMCE

通過這種方法沒有被執行,甚至警報工作

方法2

$('.#myEditorField_ifr').load(function(){ 
      alert("hello"); 
      aaa= $('.#myEditorField_ifr').contents().find('body').on('keyup',function(e) { 
     alert('bingo?'); 
    }); 

    }) 

。是否有任何像editor->setcontenteditor->getcontent mehod將事件附加到TinyMCE ???

還有一個小問題是,這種類型的編輯器可以在不使用iframe的情況下實現,但爲什麼tinyMCE使用的是iframe?

回答

0

哇,我剛剛解決了這個問題。

問題是我的腳本在編輯器完全加載之前就被執行了。我仍然無法弄清楚爲什麼.load()不能用於MCE,但.load()可以在我測試的其他iframe上成功運行。

所以我做的是,我做了一個點擊事件和.keyup()通過該函數附加到iframe正文。在我的情況下,這種情況是可以容忍和可行的,但可能不適合您的情況。

所以下面是一個完美的代碼塊,並在JOOMLA編輯器中顯示每個按鍵的警報。

$(".myDoButton").on("click",function(){ 
     aaa= $('.myPreviewEditor iframe').contents().find('body').keyup(function(){ 
     alert("hoklo"); 
    }); 

雖然這只是一個臨時解決方案。

0

要捕捉關鍵事件,您可能必須創建一個TinyMCE插件,因爲我認爲編輯器會消耗關鍵事件。

你可能會想讀TinyMCE wikiCreating a Plugin

+0

感謝cppl考慮我的問題 – arslan