You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Trumbowyg编辑器将Font Awesome<i>标签转为SVG?

Trumbowyg编辑器阻止Font Awesome 标签转为SVG的解决方案

问题描述

在Trumbowyg编辑器的源码模式中添加以下代码:

<p>hello</p><p><br></p>

<label class="click_aerrow">
     <i class="fa fa-angle-down"></i> 
</label>

编辑器会自动将<i>标签转换为SVG代码:

<p>hello</p><p><br></p>

<label class="click_aerrow">
     <svg class="svg-inline--fa fa-angle-down fa-w-10" aria-hidden="true" focusable="false" data-prefix="fa" data-icon="angle-down" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" data-fa-i2svg=""><path fill="currentColor" d="M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4-9.4 9.4-24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"></path></svg><!-- <i class="fa fa-angle-down"></i> --> 
</label>

尝试过以下配置均无效:

  • $.trumbowyg.svgPath = false;
  • $.trumbowyg.svgAbsoluteUsePath = true;
  • 调整semantic、tagsToKeep属性及组合

需要实现源码中写入<i class="fa fa-angle-down"> </i>时不被转为SVG。

解决方案

1. 禁用Font Awesome自动SVG转换

该转换本质是Font Awesome的JS自动替换行为,而非Trumbowyg本身导致。可通过两种方式禁用:

  • 初始化Font Awesome时配置:
FontAwesome.config.autoReplaceSvg = false;
  • 引入Font Awesome脚本时添加属性:
<script src="your-fontawesome-kit.js" data-auto-replace-svg="false"></script>

2. 配置Trumbowyg强制保留标签

初始化编辑器时明确设置标签白名单,禁用语义化转换:

$('#editor').trumbowyg({
  tagsToKeep: ['i'],
  allowedTags: ['i', 'p', 'label', 'br'],
  semantic: false,
  allowedAttributes: {
    'i': ['class'],
    'label': ['class']
  }
});

3. 自定义插件拦截SVG替换

如果上述方法无效,可编写简单插件在编辑器保存时将SVG还原为<i>标签:

$.trumbowyg.plugins.preventFaSvg = function(trumbowyg) {
  const originalSave = trumbowyg.saveRange;
  trumbowyg.saveRange = function() {
    let html = trumbowyg.$ed.html();
    // 匹配Font Awesome生成的SVG注释对,还原为原始<i>标签
    html = html.replace(/<svg[^>]*><\/svg><!-- <i class="fa ([^"]+)"><\/i> -->/g, '<i class="fa $1"></i>');
    trumbowyg.$ed.html(html);
    return originalSave.call(this);
  };
};

// 初始化编辑器时启用插件
$('#editor').trumbowyg({
  plugins: ['preventFaSvg']
});

4. 检查清理插件配置

如果启用了Trumbowyg的cleanup插件,需同步配置允许<i>标签:

$('#editor').trumbowyg({
  cleanup: {
    allowedTags: ['i', 'p', 'label', 'br'],
    allowedAttributes: {
      'i': ['class'],
      'label': ['class']
    }
  }
});

内容的提问来源于stack exchange,提问作者Arpit Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 09:33:31