0

AdSense スクリプトが原因でスクリプトに問題があります... AdSense スクリプトの読み込みに失敗すると、スクリプトは正常に動作しますが、AdSense が読み込まれると、スクリプトが読み込まれません。そして、私のスクリプトは AdSense スクリプトの後に実行されることを知っています。

したがって、AdSense スクリプトが実行される前にスクリプトが実行されると (前のタグをテーブルに変更するためのスクリプトであるため、レイアウトのみが変更されるため)、AdSense を読み込むだけでなく、すべてが読み込まれると考えています...

私のJavaScriptは:

window.onload = function(){
var preElements = document.getElementsByTagName('pre');
var codeLine = new Array();
var newContent

for(var i = 0; i < preElements.length; ++ i)
{
    var element = preElements[i];
    newContent='<div align="center"><table width="75%" border="1" cellpadding="0" cellspacing="0" >'

    codeLine = element.innerHTML.split('\n');

    for(var j=0 ; j < codeLine.length ; j++){
        newContent = newContent + '<tr><td width="30" class="codeNumber" >' + j.toString() + ' </td><td class="codeTab"> ' + codeLine[j] + '</td></tr>';
    }

    newContent = newContent + '</table></div>';
    element.innerHTML = newContent;


}

}

ヘッド セクションに読み込まれ、AdSense はセル内に読み込まれ、広告スペースは 1 つしかありません。AdSense がセル上の唯一のものではないため、セルに ID を与えることができません...そして別のこと.. AdSense が呼び出されている場所は、私が pre タグを持っている場所とはまったく異なります

解決済み: 最初はこれについてあまり知りませんでしたが、少し調べたところ問題が見つかりました。1º AdSense に接続の問題があり、そのため、その後に実行されるすべてのスクリプトが読み込まれません 2º 「window.onload」が含まれていれば、スクリプトがどこにあるかは問題ではありません... 私は考えましたその機能はウィンドウが読み込まれているときに機能しましたが、実際には、ウィンドウが完全に読み込まれた後に機能するため、AdSense との競合が発生していました。

皆さんのおかげで、私はこのことをより速く理解することができました!

4

3 に答える 3

2

</body>通常、ほとんどの人は Ad と Analytics のコード インクルードを終了タグの直前に置きます。

ロードから実行まで、コードで競合状態を回避するようにしてください。コードはイベント ドリブンでモジュール式にする必要があります。別のスクリプトによって設定されているコンテナに Adsense を配置する必要がある場合は、DOM の更新が完了したときに、コールバックとして他のスクリプトに Adsense をロードさせるのが理にかなっています。このようなもの:

function loadAdsense(elementId) {

    var js = document.createElement('script');
    js.src = 'http://pagead2.googlesyndication.com/pagead/show_ads.js';

    window.google_ad_client = 'ca-pub-xxxxxxxxxxxx';
    window.google_ad_slot   = '1234567890';
    window.google_ad_width  = 336;
    window.google_ad_height = 280;

    document.getElementById(elementId).appendChild(script);
}

function preToTable() {
    // set PRE to TABLE - id = myNewTable
    // then load Adsense
    loadAdsense('myNewTable');
}
于 2013-03-04T17:27:10.863 に答える
0

解決済み:最初、私はこれについてあまり知りませんでしたが、少し調べてみると問題が見つかりました。1ºAdSenseで接続の問題が発生していたため、その後に実行されるすべてのスクリプトが読み込まれません2º「window.onload」が含まれている場合は、スクリプトがどこにあるかは関係ありません...と思いましたこの機能はウィンドウの読み込み中に機能しましたが、実際にはウィンドウが完全に読み込まれた後に機能するため、AdSenseとの競合が発生していました。

于 2013-03-05T15:07:02.980 に答える
0

JavaScript を head タグに配置し、AdSense コードをコンテンツの最後に配置する必要があります。もう 1 つの解決策は、最初のスクリプトが完了したときに、JavaScript イベントを使用して AdSense スクリプトを出力することです。

于 2013-03-04T17:33:01.700 に答える