使CKEditor4忽略Google AdSense代码

时间:2013-01-10 14:29:50

标签: iframe ckeditor adsense

我正在使用CKEditor4来内联编辑我的页面内容。但是,当我将Google AdSense代码添加到我的内容的原始HTML并加载内联编辑器时,脚本会被执行,新的iframe会放在我的可编辑div中。当我保存页面时,它将保存iframe和脚本;因此,下次启动内联编辑器时,它将创建另一个。

这真的很烦人,我想知道是否有人知道如何防止CKEditor4在编辑器本身中执行<script>标记。

我一直在谷歌上搜索解决方案,但找不到任何解决方案。

1 个答案:

答案 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中的强大工具。一旦你得到它,你就会做魔法。