Iai*_*son 138 html class ckeditor
我在我的网站上使用CKEditor作为后端编辑器.它驱使我绕过弯道,因为它似乎想要在我按下源按钮时将代码更改为它看起来如何合适.例如,如果我点击源并创建一个<div>
...
<div class="myclass">some content</div>
Run Code Online (Sandbox Code Playgroud)
然后没有明显的理由剥离类<div>
,所以当我再次点击源它已被改为...
<div>some content</div>
Run Code Online (Sandbox Code Playgroud)
我认为这种恼人的行为可以在关闭config.js
,但我一直在挖掘,无法在文档中找到任何东西来关闭它.
Iai*_*son 282
最简单的解决方案是进入config.js和设置:
config.allowedContent = true;
Run Code Online (Sandbox Code Playgroud)
(记得清除浏览器的缓存).然后CKEditor完全停止过滤输入的内容.但是,这将完全禁用内容过滤,这是最重要的CKEditor功能之一.
您还可以更精确地配置CKEditor的内容过滤器,以仅允许您需要的这些元素,类,样式和属性.这个解决方案要好得多,因为CKEditor仍会删除浏览器在复制和粘贴内容时产生的许多糟糕的HTML,但它不会删除你想要的内容.
例如,您可以扩展默认CKEditor的配置以接受所有div类:
config.extraAllowedContent = 'div(*)';
Run Code Online (Sandbox Code Playgroud)
或者一些Bootstrap的东西:
config.extraAllowedContent = 'div(col-md-*,container-fluid,row)';
Run Code Online (Sandbox Code Playgroud)
或者,您可以允许包含可选dir
属性dt
和dd
元素的描述列表:
config.extraAllowedContent = 'dl; dt dd[dir]';
Run Code Online (Sandbox Code Playgroud)
这些只是非常基本的例子.您可以编写所有类型的规则 - 需要属性,类或样式,仅匹配特殊元素,匹配所有元素.您也可以禁用内容并完全重新定义CKEditor的规则.了解更多:
小智 56
我找到了解决方案.
这关闭了过滤,它正在工作,但不是一个好主意......
config.allowedContent = true;
Run Code Online (Sandbox Code Playgroud)
使用内容字符串适用于id等,但不适用于类和样式属性,因为您有()和{}用于类和样式过滤.
所以我的赌注是允许编辑器中的任何类是:
config.extraAllowedContent = '*(*)';
Run Code Online (Sandbox Code Playgroud)
这允许任何类和任何内联样式.
config.extraAllowedContent = '*(*);*{*}';
Run Code Online (Sandbox Code Playgroud)
对于任何标记,只允许class ="asdf1"和class ="asdf2":
config.extraAllowedContent = '*(asdf1,asdf2)';
Run Code Online (Sandbox Code Playgroud)
(所以你必须指定类名)
仅允许p = tag的class ="asdf":
config.extraAllowedContent = 'p(asdf)';
Run Code Online (Sandbox Code Playgroud)
要允许任何标记的id属性:
config.extraAllowedContent = '*[id]';
Run Code Online (Sandbox Code Playgroud)
等等
要允许样式标记(<style type ="text/css"> ... </ style>):
config.extraAllowedContent = 'style';
Run Code Online (Sandbox Code Playgroud)
要复杂一点:
config.extraAllowedContent = 'span;ul;li;table;td;style;*[id];*(*);*{*}';
Run Code Online (Sandbox Code Playgroud)
希望这是一个更好的解决方案......
Mar*_*ANG 14
从CKEditor v4.1开始,您可以在CKEditor的config.js中执行此操作:
CKEDITOR.editorConfig = function( config ) {
config.extraAllowedContent = '*[id](*)'; // remove '[id]', if you don't want IDs for HTML tags
}
Run Code Online (Sandbox Code Playgroud)
有关允许的内容规则的详细语法,请参阅官方文档
Was*_*utt 10
如果您使用ckeditor 4.x,您可以尝试
config.allowedContent = true;
Run Code Online (Sandbox Code Playgroud)
如果你使用的是ckeditor 3.x,你可能会遇到这个问题.
尝试在config.js中添加以下行
config.ignoreEmptyParagraph = false;
Run Code Online (Sandbox Code Playgroud)
这在ckeditor中称为ACF(自动内容过滤器).它删除了所有unnessary标签我们在文本内容中使用的内容.在config.js文件中使用此命令应该关闭此ACK.
config.allowedContent = true;
Run Code Online (Sandbox Code Playgroud)
以下是CKEDITOR 4.x的完整示例:
HTML
<textarea name="post_content" id="post_content" class="form-control"></textarea>
Run Code Online (Sandbox Code Playgroud)
脚本
CKEDITOR.replace('post_content', {
allowedContent:true,
});
Run Code Online (Sandbox Code Playgroud)
上面的代码将允许编辑器中的所有标签。
更多细节:CK EDITOR 允许的内容规则
归档时间: |
|
查看次数: |
118722 次 |
最近记录: |