【问题标题】:TinyMCE: Copying and Pasting from one Editor to AnotherTinyMCE:从一个编辑器复制和粘贴到另一个编辑器
【发布时间】:2015-02-14 07:04:24
【问题描述】:

在使用 TinyMCE 时,我发现以下步骤:

  1. 在 TinyMCE 编辑器中选择所有内容
  2. Command-X(如果您是 PC,则为 control-X)
  3. 重新粘贴到同一个编辑器中

结果是您的原始内容,由一个 DIV 包装,该 DIV 具有适用于应用于 div 的 content_css 主体的任何样式,并将您的内容包装在其中。更清楚地说,如果你开始:

<p>Content!</p>

并且有 content_css : 'content.css' 包含:

body { padding: 20px; }

当你粘贴时,你会得到

<div style='padding: 20px;'>
<p>Content!</p>
</div>

如果您剪切新内容并再次粘贴,您现在已经将其包裹了两次。有没有办法轻松阻止 tinyMCE 实施这种行为?我删除了分配给编辑器主体的自定义 ID,所以现在它只是在我的 css 的 BODY 标记上抓取样式。

我尝试编写一个自定义样式表,该样式表不对主#tinyMCE 选择器本身设置任何规则,但在进行复制/粘贴时,我仍然将我的内容由具有一些默认规则的通用 DIV 包装。

有没有办法避免这种情况?

如果它对 TinyMCE 专家有帮助,我的 init 调用相当简单:

tinyMCE.init({
        // General options
        mode            : "specific_textareas",
        editor_selector : "enableMCE",
        theme           : "advanced",
        skin            : "o2k7",
        skin_variant    : "silver",
        plugins         : "table",
        inline_styles   : false,
        theme_advanced_blockformats         : '',
        theme_advanced_toolbar_location     : "top",
        theme_advanced_buttons1             : "bold,italic,bullist,numlist,|,styleselect,|,indent,outdent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,table,visualaid,|,removeformat",
        theme_advanced_buttons2             : "",
        theme_advanced_toolbar_align        : "left",        
        content_css     : '/assets/admin/css/events-editor.css',
        rows: 100,
        // Style formats
        style_formats : [
          { title : 'Headline', block : 'h2' },
          { title : 'Subhead', block : 'h3' },
          { title : 'Minor Head', block : 'h4' },
          { title : 'Paragraph', block : 'p' }
        ]
});

【问题讨论】:

    标签: tinymce


    【解决方案1】:

    这里的问题是tinymce 不能在这里决定粘贴的内容来自哪里,并默认包装它。您必须使用tinymce init 参数paste_preprocess 自己修改粘贴的内容。使用此参数,您可以检查粘贴的内容是否来自 tinymce 编辑器实例的自己的标志,并在必要时删除不必要的标签。

    【讨论】:

      【解决方案2】:

      作为替代方案,您也可以使用invalid_elements 选项。特别是如果您的条目主要是关于文本或图像的,您可能可以从复制的文本中禁止所有div html 标记。

      为了实现这一点,我刚刚将它添加到我的 TinyMCE 配置中:

      invalid_elements : "div"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多