【问题标题】:Make CKEditor4 ignore Google AdSense code使 CKEditor4 忽略 Google AdSense 代码
【发布时间】:2013-01-12 02:21:32
【问题描述】:

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

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

我整天都在谷歌上搜索解决方案,但找不到任何解决方案。

【问题讨论】:

    标签: iframe ckeditor adsense


    【解决方案1】:

    您可以在解析和返回任何类型的代码时对其进行过滤。我猜最简单的方法是在保存编辑器数据时删除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 中的强大工具。一旦你得到它,你就会变魔术。

    【讨论】:

    • 您提到ins 标签让我想到了一个更简单的方法。在提交我的数据之前,我只是 $("ins").remove();
    猜你喜欢
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多