2016-02-04 182 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

相关问题