我为jQuery编写了一个插件,它将ads 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...on Adsense和其他一些广告中效果很好programs...but问题开始在IE7...From上因为某种原因,有时广告加载在容器中,有时不加载...
我的插件出了什么问题?
发布于 2010-06-29 03:11:08
我简化了一点。
(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之后显示它们。
https://stackoverflow.com/questions/3134512
复制相似问题