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

Wysiwyg编辑器粘贴内容配置需求:保留原格式但清除来源网站字体

解决WYSIWYG编辑器粘贴时保留格式仅去除字体样式的方案

不少主流WYSIWYG编辑器都能实现粘贴内容保留原有格式、仅清除字体相关样式的需求,以下是几种可行方案:

1. 用编辑器自带的选择性粘贴功能

  • 像CKEditor、TinyMCE这类编辑器,本身就带选择性粘贴选项,用户粘贴时可以选「匹配目标格式」或者「保留格式但清除字体样式」。
  • 你可以在编辑器的默认设置里开启这个模式,不用用户每次手动操作。

2. 自定义粘贴事件拦截处理

通过监听编辑器的粘贴事件,手动过滤掉字体相关的标签和样式,以TinyMCE为例:

tinymce.init({
  selector: '#editor',
  setup: function(editor) {
    editor.on('paste', function(e) {
      // 获取剪贴板里的HTML内容
      let clipboardContent = e.clipboardData.getData('text/html');
      // 移除<font>标签和所有字体相关的内联样式
      clipboardContent = clipboardContent.replace(/<font[^>]*>/g, '')
                                         .replace(/style="[^"]*(font-family|size|weight|style)[^"]*"/gi, '')
                                         .replace(/style=""/g, '');
      // 替换粘贴的内容
      e.preventDefault();
      editor.insertContent(clipboardContent);
    });
  }
});
  • 核心是过滤掉<font>标签,以及内联样式里的font-family、font-size、font-weight、font-style这些属性。

3. 配置编辑器的内容过滤规则

很多编辑器有内容过滤插件,比如CKEditor的Advanced Content Filter,你可以设置规则允许保留的格式,禁用字体相关样式:

ClassicEditor
  .create(document.querySelector('#editor'), {
    allowedContent: {
      '$1': {
        // 允许所有标签,但禁止字体相关样式
        styles: '!font-family,!font-size,!font-weight,!font-style',
        attributes: true,
        classes: true
      }
    }
  })
  .catch(error => {
    console.error(error);
  });

4. 粘贴后统一清洗内容

如果前面的方法都不合适,还可以在粘贴完成后遍历编辑器内的元素,批量移除字体相关的样式和标签,同时保留段落、列表、粗体、斜体、链接这些格式。

内容的提问来源于stack exchange,提问作者Roddy P. Carbonell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:35:00