TinyMCE 无法获取未定义或空引用的 属性 'setContent'

TinyMCE Unable to get property 'setContent' of undefined or null reference

我知道这个主题已经在这里多次讨论过,但无论我采用哪种方法,我要么会收到诸如 "Unable to get property 'setContent' of undefined or null reference" 之类的错误,要么该行执行但没有任何反应。

这是我所知道的。 tinymce 初始化并且是一个有效的对象。 html 变量具有从父 window 获得的属性 HTML。 jQuery 已加载并正常运行。

除了下面的代码我也试过了

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

tinymce初始化前后的所有方法我都试过了(以防万一)

<!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>

我怀疑这个问题是因为您在 TinyMCE 在页面上初始化之前试图与它交谈。

您的 get() 调用位于您页面的头部,我怀疑当浏览器处理您的 TinyMCE 已初始化的脚本时。您可以使用 "init" 处理程序来延迟此调用发生时:

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