TinyMCE:从一个编辑器复制和粘贴到另一个编辑器

时间:2011-12-03 03:05:58

标签: tinymce

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

  1. 在TinyMCE编辑器中选择所有conent
  2. Command-X(如果你是PC,则为control-X)
  3. 重新编辑到同一个编辑器
  4. 结果是您的原始内容,由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专家有帮助,我的初始化调用非常简单:

    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' }
            ]
    });
    

2 个答案:

答案 0 :(得分:1)

这里的问题是,如果粘贴的contetn来自并且默认包装它,那么tinymce就无法决定。您必须使用tinymce init参数paste_preprocess自行修改粘贴的内容。使用这个参数,您可以检查自己的标记,粘贴的内容是否来自于编辑器实例,如果需要,可以删除不必要的标签。

答案 1 :(得分:0)

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

为实现这一目标,我只是将其添加到我的TinyMCE配置中:

invalid_elements : "div"