Загрузить рекламу после загрузки страницы с помощью jQuery - PullRequest
1 голос
/ 28 июня 2010

Я написал плагин для jQuery, который копирует вывод рекламы JavaScript в там контейнер Div.

, поэтому я поместил Ads JS внизу страницы (чтобы они не уменьшали скорость загрузки моей страницы) в пределах невидимых элементов Div, которые выглядят следующим образом:

<div id="ad_loader_4" class="ads_loader"></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 голосов
/ 28 июня 2010

Я немного упростил.

(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);

ПРИМЕЧАНИЕ. Если вы скрываете нижние элементы, вам может потребоваться показать их после замены на них пустых элементов.

...