如何阻止 TinyMCE 用 span 替换已弃用的标签

Posted

技术标签:

【中文标题】如何阻止 TinyMCE 用 span 替换已弃用的标签【英文标题】:how to stop TinyMCE from replacing deprecated tags with span 【发布时间】:2013-08-16 18:05:11 【问题描述】:

我正在使用 TinyMCE 在其行单击时捕获表行数据。我通过其配置 UI 屏幕为每个表格行内容设置不同的颜色、字体样式(如粗体和斜体)值。在行单击时,我想使用具有特定颜色和字体样式的文本设置 TinyMCE 内容。但是,它将弃用的字体样式放在 span 标记中,我不希望这样。我希望它保留编辑器收到的 html 文本,因为稍后我必须处理它。我试过了:

tinymce.init(
  
    selector:'textarea',
    theme:"advanced",                   
    theme_advanced_statusbar_location : "none",
    theme_advanced_menubar_location : "none",
    theme_advanced_toolbar_location : "none",
    convert_fonts_to_spans : "false",
    extended_valid_elements : "span[!class]",
    valid_elements : "*[*]",
    valid_children : "*[*]",
    cleanup_on_startup : false,
    cleanup : false,
  
);

尽管 TinyMCE 的主要开发人员已建议不要在其论坛页面上设置 cleanup =false。此外,尽管设置了valid_elements : "*[*]",但不推荐使用的标签如<b><u> 被放入span 标签的样式属性中。

【问题讨论】:

【参考方案1】:

我找到了解决方案..我所要做的就是

tinymce.init(

    selector:'textarea',
    theme:"advanced",                   
    theme_advanced_statusbar_location : "none",
    theme_advanced_menubar_location : "none",
    theme_advanced_toolbar_location : "none",
    convert_fonts_to_spans : false,
    valid_elements : "b,u,i,font[color|size]",
    valid_children : "b,u,i,font[color|size",
    cleanup_on_startup : false,
    cleanup : false,
);

【讨论】:

【参考方案2】:

这是我对字体颜色、字体大小的处理方式。您可以将此技术应用于其他任何事情。这是针对 TinyMCE 4 的

    convert_fonts_to_spans : false,
    formats: 
        forecolor : inline : 'font', attributes:  color: "%value" ,
        fontsize: inline : 'font', attributes:  size: "%value" 
    ,

注意:你不能只做 convert_fonts_to_spans : false,你也需要格式。

【讨论】:

谢谢,我实际上是在添加格式,它们似乎在开发人员工具中工作,但在保存或检查编辑器源代码时却不行。我错过了convert_fonts_to_spans : false,对我来说这并不完全明显。

以上是关于如何阻止 TinyMCE 用 span 替换已弃用的标签的主要内容,如果未能解决你的问题,请参考以下文章

如何替换已弃用的 imp.load_dynamic 的用法?

用 .on 替换已弃用的 .live [重复]

用 QuerydslJpaPredicateExecutor 替换已弃用的 QuerydslJpaRepository 失败

替换已弃用的函数 mysql_connect [重复]

IntentService 已弃用,如何将其替换为 JobIntentService?

尝试替换已弃用的 loadnibnamed:owner