【问题标题】:stripping out <![if !mso]> by displaying in tinymce通过在 tinymce 中显示去除 <![if !mso]>
【发布时间】:2016-10-25 07:53:54
【问题描述】:

目前我正在使用tinymce 的一个非常旧的版本(2.8),现在我正在尝试将其升级到最新版本(4)。在这个过程中,我遇到了一些麻烦,主要是在旧版本中隐藏的 html 查看器中显示 &lt;![if !mso]&gt;

我使用这个编辑器作为我的邮件编辑器,所以基本上我正在将响应式 html 邮件文本加载到编辑器中。但它在 html 查看器中显示了&lt;![if !mso]&gt; 这段代码,它没有被解释为注释。

我使用的代码,(根据example

tinymce.init({
  selector: 'textarea',
  height: 500,
  theme: 'modern',
  plugins: [
    'advlist autolink lists link image charmap print preview hr anchor pagebreak',
    'searchreplace wordcount visualblocks visualchars code fullscreen',
    'insertdatetime media nonbreaking save table contextmenu directionality',
    'emoticons template paste textcolor colorpicker textpattern imagetools codesample'
  ],
  toolbar1: 'insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
  toolbar2: 'print preview media | forecolor backcolor emoticons | codesample',
  image_advtab: true,
  relative_urls : false
 });

任何人都知道我应该如何从 HTML 查看器中隐藏这个 &lt;![if !mso]&gt; 代码。请注意,这个 cmets 非常重要,所以我不想在加载到编辑器之前将它们从 html 代码中删除。我只需要隐藏它们。

【问题讨论】:

    标签: javascript html tinymce tinymce-4


    【解决方案1】:

    这里的核心问题是&lt;![if !mso]&gt; 不是一个有效的 HTML 标签,因此 TinyMCE(作为 HTML 编辑器)将其视为文本。您可以在 TinyMCE 配置中使用 protect 选项教 TinyMCE 保护编辑器中的某些文本:

    https://www.tinymce.com/docs/configure/content-filtering/#protect

    例如你可以这样做:

    tinymce.init({
        selector: textarea,
        protect: [
          /\<!\[if !mso\]\>/g,   // Protect <![if !mso]>
          /\<!\[if !vml\]\>/g,   // Protect <![if !vml]>
          /\<!\[endif\]\>/g,     // Protect <![endif]>
          /<\?php[\s\S]*?\?>/g   // Protect <?php ?> code
        ]
    });
    

    请注意,MS Office 文档放入了大量这些非标准标记标签,因此要捕获所有这些标签,您可能需要在 protect 配置选项中添加其他项目。

    【讨论】:

    • 它似乎完全删除了&lt;![if !mso]&gt;,是吗?
    • 我不想完全删除它,只需要在编辑器中隐藏它,但实际上它应该在 html 代码中
    • 它不会从编辑器中删除代码 - 它只是保护它,因此编辑器不会在 UI 中显示文本。
    • 看这个例子:fiddle.tinymce.com/pAfaab/1 &lt;![if !mso]&gt; 不会从 HTML 代码中删除。您可以在编辑器加载后查看工具/源代码来确认这一点。
    • @MichaelFromin,先生...我有一个类似&lt;img src="&lt;?php echo $img_link; ?&gt;" /&gt; 的脚本,但是当我保存并重新打开源代码视图时,它会将我的PHP 代码转换为lt;&amp;amp;&amp;lt;!--mce:protected ...我正在使用protect: [ /\&lt;\/?(if|endif)\&gt;/g, /\&lt;xsl\:[^&gt;]+\&gt;/g, /&lt;\?php.*?\?&gt;/g , /&lt;\?php[\s\S]*?\?&gt;/g, /\"\&lt;\?php[\s\S]*?\?\&gt;\"/g ]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多