我是CKEditor的新手(2天前开始使用它),我仍在使用一些配置,例如从编辑器中删除标签。
因此,例如,如果用户在源模式下键入以下内容:
<script type="text/javascript">alert('hello');</script>
我想删除它。
查看文档,我发现可以使用HTML过滤器完成此操作。我如此定义它但它不起作用。
var editor = ev.editor;
var dataProcessor = editor.dataProcessor;
var htmlFilter = dataProcessor && dataProcessor.htmlFilter;
htmlFilter.addRules(
{
elements :
{
script : function(element)
{
alert('Found script :' + element.name);
element.remove();
},
img : function( element )
{
alert('Found script :' + element.name);
if ( !element.attributes.alt )
element.attributes.alt = 'Cookingfactory';
}
}
});
img部分运行良好,但不是脚本之一。我想我错过了什么。它甚至不显示脚本的警告消息。
任何帮助都非常受欢迎:o)
答案 0 :(得分:2)
您可以使用:
CKEDITOR.replace('editor1', {
on: {
pluginsLoaded: function(event) {
event.editor.dataProcessor.dataFilter.addRules({
elements: {
script: function(element) {
return false;
}
}
});
}
}
});
答案 1 :(得分:1)
如果您使用的是CKEditor 4.1或更高版本,则可以使用Advanced Content Filter来提供所需的内容。
如果您使用的是CKEditor 4.4或更高版本,则有一种更简单的方法。您可以使用Disallowed Content过滤您不喜欢的内容。
config.disallowedContent = 'script';
答案 2 :(得分:0)
当我有CKEditor 4时,我做了下一个
CKEDITOR.instances.editor1.config.protectedSource.push( /{.*\".*}/g );
它将忽略smarty大括号中的引号