我正在使用Redactor v9.2.1。我试图让我的客户在他们的CMS中使用样式标签,但是编辑器会从内容中删除它们。
当我添加以下内容时:
<style type="text/css">
.red{color:red;}
</style>
redactor将其剥离为:
<p>
.red{color:red;}
</p>
我已经确定deniedTags在我的设置对象中没有包含'style',而且我没有使用allowedTags属性,因为它与deniedTags冲突。
这是我的设置对象,我将传递给redactor init:
var settings = {
deniedTags:[
'html', 'head','link', 'body', 'meta', 'applet'
],
observeLinks: true,
iframe: true,
convertVideoLinks: true
};
感谢任何帮助。
答案 0 :(得分:3)
http://imperavi.com/redactor/docs/settings/clean/#setting-deniedTags
顶级HTML标记(&#39; html&#39;,&#39; head&#39;,&#39; link&#39;,&#39; body&#39;,&#39; meta& #39;,&#39; 风格&#39;, 无论此设置如何,脚本&#39;,&#39; applet&#39;)将始终被删除, 除非包裹在&#39; pre&#39;标记(格式化选项&#39;代码&#39;)
因此,我无法在编辑器中添加style
标记,正如我在文档中所读到的那样。好像你有这些选择:
在编辑器外设置单个标签样式:添加父选择器.redactor-editor
,然后添加标签名称。请参阅http://imperavi.com/redactor/examples/typography/
添加多个formattingAdd
选项,让用户从formatting
下拉列表中选择自定义样式:
$('#redactor').redactor({
formattingAdd: [
{
tag: 'p',
title: 'Red Block',
class: 'red-style'
}
]
});
/**
* The above would create a new formatting entry,
* which you define with 2 css selectors:
* one for the class of the entry, another for the dropdown entry
*
* .red-style, .redactor-dropdown .redactor-formatting-red-style {
* color: red;
* }
*/
注意下拉列表的css选择器规则,即.redactor-dropdown .redactor-formatting-YOUR_CSS_CLASSNAME
。这也很重要:
formattingAdd只能应用于p,pre,blockquote和header 标签
因此,您无法将其应用于<div>
。如果您需要块元素,请使用<p>
。此外,如果您需要内联, CAN 使用<span>
...它有效,请参阅小提琴:http://jsfiddle.net/a4df10vj/1/