TinyMCE PowerPaste 插件

TinyMCE 具有内置的粘贴功能,然而 PowerPaste 是一个高级插件,提供了改进的粘贴支持,包括对 Microsoft Word、Microsoft Excel 和 Google Docs 内容的支持。它还包含在将内容粘贴到编辑器中时清理或合并样式的选项。

有关信息,请参阅 PowerPaste 插件。

核心粘贴功能和 PowerPaste 共享许多选项,尽管有些存在细微差异。以下选项专门适用于核心粘贴功能。例如,paste_block_drop、paste_data_images、paste_remove_styles_if_webkit 和 paste_webkit_styles 选项是核心功能特有的,不适用于 PowerPaste 插件。

控制内容的粘贴方式

这些选项会影响将 HTML 内容粘贴到编辑器中时的处理方法。

paste_as_text

此选项允许您设置 Edit 菜单下拉菜单中“Paste as text”菜单项的默认状态。默认情况下它是禁用的。

类型: Boolean

默认值: false

可能的值: true、false

示例:使用 paste_as_text

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  toolbar: 'paste',
  paste_as_text: true
});

paste_block_drop

由于浏览器的限制,无法过滤拖放到编辑器中的内容。当 paste_block_drop 设置为 true 时,将禁止将内容拖放到编辑器中。这可以防止引入未经过滤的内容。复制和粘贴仍然启用。

类型: Boolean

默认值: false

可能的值: true、false

示例:使用 paste_block_drop

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  paste_block_drop: false
});

paste_merge_formats

此选项在粘贴内容时启用合并格式功能。这会合并相同的文本格式元素,以减少生成的 HTML 元素数量。例如:<b>abc <b>bold</b> 123</b> 变成 <b>abc bold 123</b>,因为内部格式是多余的。此选项默认启用,但如果保留嵌套或相同的格式元素很重要,则可以禁用。

类型: Boolean

默认值: true

可能的值: true、false

示例:使用 paste_merge_formats

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  toolbar: 'paste',
  paste_merge_formats: false
});

paste_tab_spaces

此选项控制粘贴纯文本内容时,HTML 中使用多少个空格来表示一个 tab 字符。默认情况下,当粘贴 tab 字符时,它们将被转换为 4 个连续的空格字符。

类型: Number

默认值: 4

示例:使用 paste_tab_spaces

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  toolbar: 'paste',
  paste_tab_spaces: 2
});

smart_paste

smart_paste 函数将:

  • 检测类似 URL 的文本并将文本更改为超链接。

  • 检测类似图片 URL 的文本,并尝试用图片替换文本。

要禁用 smart_paste 功能,请将 smart_paste 设置为 false。要配置识别哪些图像文件类型,请参阅 图像和文件选项 - images_file_types。

类型: Boolean

默认值: true

可能的值: true、false

将 powerpaste_autolink_urls 选项设置为 false 将覆盖 smart_paste 选项的自动链接功能。

示例:使用 smart_paste

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  toolbar: 'paste',
  smart_paste: false
});

过滤粘贴的内容

这些选项控制 HTML 内容的过滤方式,以便在粘贴到编辑器中时内容被消除或保留。

paste_data_images

此选项指定是否应从粘贴的内容中移除 data:url 图像(内联图像)。

将 paste_data_images 设置为 true 将允许粘贴的图像,而设置为 false 将不允许粘贴的图像。

类型: Boolean

默认值: true

可能的值: true、false

示例:使用 paste_data_images

tinymce.init({
  selector: 'textarea',  // 根据HTML更改此值
  toolbar: 'paste',
  paste_data_images: false
});

paste_preprocess

此选项允许你在粘贴内容插入编辑器之前对其进行修改。

类型: Function

示例:使用 paste_preprocess

tinymce.init({
  selector: 'textarea',  // 根据HTML更改此值
  toolbar: 'paste',
  paste_preprocess: (editor, args) => {
    console.log(args.content);
    args.content += ' preprocess';
  }
});

paste_postprocess

此选项允许你在粘贴内容插入编辑器之前对其进行修改,但此时内容已经被解析为DOM结构。

类型: Function

示例:使用 paste_postprocess

tinymce.init({
  selector: 'textarea',  // 根据HTML更改此值
  toolbar: 'paste',
  paste_postprocess: (editor, args) => {
    console.log(args.node);
    args.node.setAttribute('id', '42');
  }
});

paste_remove_styles_if_webkit

此选项允许你禁用TinyMCE针对Webkit样式的默认粘贴过滤器。

类型: Boolean

默认值: true

可能的值: true, false

示例:使用 paste_remove_styles_if_webkit

tinymce.init({
  selector: 'textarea',  // 根据HTML更改此值
  toolbar: 'paste',
  paste_remove_styles_if_webkit: false
});

paste_webkit_styles

此选项允许你指定在WebKit中粘贴时想要保留的样式。WebKit有一个特性,它会获取元素的所有计算CSS属性,并将它们添加到编辑器内的span元素中。由于大多数用户不希望文档中随意添加span元素,我们需要手动清理这些元素,直到此问题得到修复。此选项默认值为'none',但可以设置为'all'或指定要保留的样式列表。

类型: String

默认值: 'none'

可能的值: 'none', 'all' 或空格分隔的样式列表

示例:使用 paste_webkit_styles

tinymce.init({
  selector: 'textarea',  // 根据HTML更改此值
  toolbar: 'paste',
  paste_webkit_styles: 'color font-size'
});