1

広告 JavaScript の出力をコンテナ Div にコピーする jQuery 用のプラグインを作成しました。

そのため、Ads 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 で始まります... 何らかの理由で、広告がコンテナに読み込まれる場合と読み込まれない場合があります。 ..

プラグインの何が問題になっていますか?

4

1 に答える 1

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 をそれらで置き換えた後に表示する必要がある場合があります。

于 2010-06-28T19:11:07.837 に答える