首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在加载了jQuery的页面之后加载广告

在加载了jQuery的页面之后加载广告
EN

Stack Overflow用户
提问于 2010-06-29 01:10:12
回答 1查看 1.5K关注 0票数 1

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

所以我把广告JS放在页面的底部(这样它们就不会降低我的页面加载速度),放在不推荐的Div中,如下所示:

代码语言:javascript
运行
复制
<div id="ad_loader_4" class="ads_loader"></div>

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

代码语言:javascript
运行
复制
<div id="ad_4"></div>

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

jQuery插件如下所示:

代码语言:javascript
运行
复制
(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...on Adsense和其他一些广告中效果很好programs...but问题开始在IE7...From上因为某种原因,有时广告加载在容器中,有时不加载...

我的插件出了什么问题?

EN

回答 1

Stack Overflow用户

发布于 2010-06-29 03:11:08

我简化了一点。

代码语言:javascript
运行
复制
(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之后显示它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3134512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档