javascript - TinyMce 执行 setContent 时失败

标签 javascript angularjs serialization tinymce-4

我正在尝试使用tinymce 4.7.1(从旧的tinymce 4.3.1升级)。当我尝试通过调用 setContent 方法以编程方式设置 tinymce 的内容时,它抛出以下错误:

Cannot read property 'parse' of undefined TypeError: Cannot read property 'parse' of undefined

在查看错误的详细信息后,我意识到tinymce 期望在它的tinymce.dom 中具有序列化类,并且在没有此类的情况下,它无法解析此错误。

这是来自tinymce的片段

else {
          // Parse and serialize the html
          if (args.format !== 'raw') {
            content = new Serializer({
              validate: self.validate
            }, self.schema).serialize(
              self.parser.parse(content, { isRootContent: true }) //this line is throwing error
              );
          }

与之前的版本(4.3.1 版本对我来说运行良好)相比,对序列化类没有这样的依赖。

有人可以建议我是否必须添加更多插件或类(默认包中未提供)才能使我的代码正常工作?

我的观察:在一个孤立的原型(prototype)示例中,当我运行托管在云上的tinymce时,它工作得很好。

最佳答案

您能否展示一些运行代码来显示您如何使用 setContent()?我怀疑您试图在编辑器完全初始化之前调用它,因为 init() 方法是异步的。

确保等待编辑器完全初始化的最简单方法是依赖编辑器提供的 init 事件:

tinymce.init({
  selector: '#myTextarea',
  ...
  ...
  setup: function (editor) {
    editor.on('init', function () {
      editor.setContent('Using the on init stuff!');
    });
  }
});

关于javascript - TinyMce 执行 setContent 时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46761983/

相关文章:

javascript - 旋转标签 nvd3 折线图

c# - 序列化一个 BigInteger

java - Apache Flink fromCollection java.lang.IllegalStateException : unread block data

c# - 无法反序列化当前的 JSON 数组(例如 [1,2,3])

javascript - 样式在 javascript 中的变量中不起作用

javascript - AngularJs错误: [ng:areq]

javascript - 将图像源放入最接近的输入值

javascript - 如何读取分配给 AngularJS 指令的值

javascript - 带有模式显示的mysql数据的variabel php

javascript - 带有 ngUpgrade : Angular does not recognize component in view 的 Angular2