【问题标题】:TinyMCE iframe encodes contentsTinyMCE iframe 对内容进行编码
【发布时间】:2017-02-10 10:32:28
【问题描述】:

使用 HTML 内容而不是 src 属性将 iframe 插入到 TinyMCE 中会编码所有内容并破坏内容。

例如:通过 View Source 或 Embed 插件插入:

<iframe><p>hello</p></iframe>

当您再次查看源代码时会出现这种情况:

<iframe width="300" height="150" data-mce-fragment="1"><P>hello</p></iframe>

有什么方法可以阻止这种情况或init 中的设置会导致这种情况吗?

如果有人想知道为什么我需要这个而不是使用 src,那是因为我正在尝试为 Facebook 的新 Instant Article 事物格式化文章,该事物需要嵌入的帖子/推文等以 <figure><iframe>[code]</iframe></figure> 格式包装。

【问题讨论】:

  • 当我将你的 HTML 加载到 TinyMCE 时,我没有得到你建议的转义数据。你能用你的配置创建一个 TinyMCE Fiddle 导致这种情况发生吗?
  • @MichaelFromin 我之前发现了导致此问题的原因,我已将其添加为下面的已接受答案

标签: iframe tinymce facebook-instant-articles


【解决方案1】:

当我试图通过在fiddle.tinymce.com 上进行测试来缩小问题范围时,我弄清楚了为什么会发生这种情况。这个编码问题并没有发生在小提琴上,所以我剥离了我自己的 init 以为它可能是 codemirror 插件,但结果是 fontawesome 2.0.6 插件 (它现在是 2.0.8,但我无法让那个版本工作,所以我不确定它是否改变了它自 2.0.6 以来的工作方式)。

插件在BeforeSetContentGetContent 上执行var content = parser.parseFromString(e.content, 'text/html'); 以进行一些不可编辑的类更改。这会导致某些 HTML 元素在源代码中编码。

长话短说,我删除了解析器并修改了插件,我的问题就解决了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多