使用TinyMCE时,我发现了以下步骤:
结果是您的原始内容,由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' }
]
});
答案 0 :(得分:1)
这里的问题是,如果粘贴的contetn来自并且默认包装它,那么tinymce就无法决定。您必须使用tinymce init参数paste_preprocess自行修改粘贴的内容。使用这个参数,您可以检查自己的标记,粘贴的内容是否来自于编辑器实例,如果需要,可以删除不必要的标签。
答案 1 :(得分:0)
作为替代方案,您还可以使用invalid_elements
选项。特别是如果您的条目主要是关于文本或图像,您可能会禁止复制文本中的所有div
html标记。
为实现这一目标,我只是将其添加到我的TinyMCE配置中:
invalid_elements : "div"