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

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

本文关键字:属性 setContent 引用 获取 未定义 TinyMCE      更新时间:2023-09-26

我知道这个主题在这里已经讨论了很多次,但无论我采用哪种方法,我都会收到错误,例如"无法获取未定义或空引用的属性'setContent'"或行执行但没有任何反应。

这是我所知道的。Tinymce初始化并且是一个有效的对象。html 变量具有从父窗口获取的 propper 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);
    });
  }
});