我正在使用CKEditor4来内联编辑我的页面内容。但是,当我将Google AdSense代码添加到我的内容的原始HTML并加载内联编辑器时,脚本会被执行,新的iframe
会放在我的可编辑div
中。当我保存页面时,它将保存iframe和脚本;因此,下次启动内联编辑器时,它将创建另一个。
这真的很烦人,我想知道是否有人知道如何防止CKEditor4在编辑器本身中执行<script>
标记。
我一直在谷歌上搜索解决方案,但找不到任何解决方案。
答案 0 :(得分:0)
您可以在解析和返回任何类型的代码时对其进行过滤。我想,最简单的方法是在保存编辑器数据时删除iframe
。坦率地说,我并不是真正参与AdSense,但我发现生成的代码是段落中包含的ins
标记。如果需要,最终可以将此过滤器扩展为更具体。
CKEDITOR.inline( 'editable', {
on: {
instanceReady: function() {
this.dataProcessor.htmlFilter.addRules( {
elements: {
p: function( element ) {
var children = element.children;
for ( var i = children.length; i--; ) {
if ( children[ i ].name == 'ins' )
return false;
}
}
}
} );
}
}
} );
另请阅读dataProcessor
它是CKEditor中的强大工具。一旦你得到它,你就会做魔法。