在页面加载jQuery之后加载广告

时间:2010-06-28 17:10:12

标签: javascript jquery jquery-plugins adsense

我为jQuery编写了一个插件,将广告JavaScript的输出复制到容器Div。

因此我将广告JS置于页面底部(因此它们不会降低我的页面加载速度)在不可取的Div中,如下所示:

<div id="ad_loader_4" class="ads_loader"></div>

这些div的id指向容器div。 容器div看起来像:

<div id="ad_4"></div>

jQuery插件等待页面加载,然后抓取在不可见div中创建的所有元素,并将它们附加到容器div。

jQuery插件看起来像:

(function($) {  
// jQuery plugin definition  
$.fn.adsLoader = function(params) {  
    // merge default and user parameters  
    params = $.extend( {}, params);  
    // traverse all nodes  
    this.each(function() {  
        // express a single node as a jQuery object  
        var $t = $(this);  
        // find id  
        var id = $t.attr('id');
        id = id.substring(10,id.length);
        $t.children().not('script').appendTo("#ad_"+id);
    });  
    // allow jQuery chaining  
    return this;  
};  
})(jQuery);

该插件适用于FF和Chrome以及IE8 ......在Adsense和其他一些广告程序......但问题始于IE7 ......出于某种原因,有时候广告会加载到容器中他们不是......

我的插件有什么问题?

1 个答案:

答案 0 :(得分:0)

我简化了一下。

(function($) {
// jQuery plugin definition
$.fn.adsLoader = function() {
    // traverse all nodes
    this.each(function() {
        // get ad id and replace
        var id = this.id.substr(10);
        $("#ad_"+id).replaceWith(this);
    });
    // allow jQuery chaining
    return this;
};
})(jQuery);

注意:如果您隐藏了底部div,则可能需要在用它们替换空div后显示它们。