【问题标题】:How can I add an (otherwise) invalid HTML element into TinyMCE如何将(否则)无效的 HTML 元素添加到 TinyMCE
【发布时间】:2011-03-07 22:44:32
【问题描述】:

我的 HTML 包含这样的元素,因为它使用来自 django-basic-apps 的内联。

<inline type="myapp.mymodel" id="4" />

我正在尝试使用 tinymce 将其中之一插入 DOM。在网站的前端,这些被处理成好的代码。

在 tinyMCE 中我添加了配置:

extend_valid_elements: 'inline[id|ids|type|filter|class|template]',

但每当我尝试通过以下方式插入时:

tinyMCE.execCommand('mceInsertRawHtml',false,'<inline type="myapp.mymodel" id="4" />');

什么都没发生,

如果我这样做:

tinyMCE.activeEditor.getContent()

TinyMCE 会删除我代码中的所有 &lt;inline 元素。

此外,我希望这些元素通过 CSS 或其他方式显示在 tinyMCE 中,但我可能不得不破解 DTD。

如果这不起作用,我认为可能的解决方案是将内容预渲染为有效的内容:

然后在保存之前,将其转换回应有的状态。

请对我应该研究的事情提出任何建议。

【问题讨论】:

  • 不管怎样,我从 TinyMCE 切换到 Xinha 的原因非常相似。 (它从我想要保留的 HTML 中剥离 div 等。)

标签: javascript dom tinymce dtd


【解决方案1】:

在 tinymce tiny_mce_src.js 的源代码中搜索字符串 valid_elements 并直接在那里添加您的元素和属性。

【讨论】:

    【解决方案2】:

    改用mceInsertContent 命令,不要使用自闭标签:

    tinyMCE.execCommand('mceInsertContent', false, '<inline type="myapp.mymodel" id="4"></inline>');
    

    【讨论】:

      猜你喜欢
      • 2012-05-07
      • 2023-03-22
      • 2017-11-21
      • 1970-01-01
      • 2013-06-16
      • 2021-01-04
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多