2016-02-04 506 views
1

我知道這個主題已經在這裏被覆蓋了很多次,但無論我採取哪種方法,我要麼得到一個錯誤,如「無法獲取屬性'setContent'未定義或空引用「或該行執行,但沒有任何反應。TinyMCE無法獲取未定義的屬性'setContent'或空引用

這是我所知道的。 012ymtinymce初始化並且是一個有效的對象。 html變量具有從父窗口獲得的propper HTML。 jQuery已加載並且功能正常。

除了下面的代碼我也試過。

tinyMCE.activeEditor.setContent(html); 
tinymce.editors[0].setContent(html); 
$('textarea#XRMeditor').val(html); * Before initialization 

我嘗試過tinymce intializes之前和之後的所有方法(以防萬一)。

<!DOCTYPE html> 
<html> 
<head> 

      <script src="sage_jquery.min.js" type="text/javascript"></script> 
      <script src="tinymce_/tinymce.min.js" type="text/javascript"></script> 

    <script> 
     var html = window.parent.document.getElementById("descriptionIFrame").contentDocument.getElementsByTagName('body')[0].innerHTML; 
     debugger; 
     //$('textarea#XRMeditor').val(html); 
     tinymce.init({ 
      selector: 'textarea#XRMeditor' 
}); 
     tinymce.get('XRMeditor').setContent(html); 

    </script> 
</head> 
<body> 
    <textarea id="XRMeditor">Easy (and free!) You should check out our premium features.</textarea> 
</body> 
</html> 

回答

1

我懷疑這個問題是,你正試圖在TinyMCE初始化之前與頁面交談。

您的get()調用位於您的頁面頭部,我懷疑當瀏覽器處理TinyMCE已初始化的腳本時。您可以使用「初始化」處理程序來延遲發生此次調用的時間:

tinyMCE.init({ 
    //your regular init parameters here... 
    setup: function(editor) { 
    editor.on('init', function() { 
     //load your content here! 
     tinymce.activeEditor.setContent(html); 
     //or 
     tinymce.editors[0].setContent(html); 
    }); 
    } 
}); 
+0

或者,使用'this.setContent(html)',因爲'this'是編輯器實例 – Destiner

相關問題