2011-02-04 12 views
2

divのページに広告コードを配置し、divのoffsetHeightサイズを確認するjavascriptコードがあります。 「0」が返された場合は、広告が広告ブロッカーによって噛まれたとみなすことができます。広告コンテンツが削除されたときの画像を表示

私がしようとしていることは、広告が表示されていた場所に画像を表示したい広告がブロックされたとき

どうすればいいですか?

編集

:あなたは通常、あなたがあなたが表示される広告のサイズを知っていると仮定すると、コード

<div id="div_bleh"> 
ads goes here 
</div> 

<script type="text/javascript"> 
function check_blehsize() 
{ 
    if (document.getElementById("div_bleh").offsetHeight == 0) 
     // do stuff 
} 
window.onload = check_blehsize; 
</script> 
+0

問題があるだろうか?このフィールドに画像を挿入する方法を尋ねますか?なぜ広告を削除する必要がありますか?あなたは可能性を与えていますか?なぜあなたは画像やテキストが既に全時間であるか、他のdivよりも上の部分をオーバーレイしないでください。 – Luke

+0

私の質問をもっと鮮明にするために編集しました – Flint

+0

コードを表示してください。 –

答えて

0

は、私は非常に一般的な広告ブロッカーに対してテスト例です - FirefoxのAdblock Plus(EasyListフィルタを使用して):

​​(edit

<!DOCTYPE html> 
<html> 
<head> 
<style type="text/css"> 
.innocent-class { 
    background: url(http://www.google.com/images/logos/ps_logo2.png); 
    width: 240px; 
    height: 400px 
} 


.justForTesting, .advertise_ads { 
    width: 240px; 
    height: 400px; 
    background: #fff 
} 
</style> 
</head> 

<body> 

<div class="innocent-class"> <!-- just don't call it "advertContainer" :) --> 
    <div class="advertise_ads justForTesting"> 
     advert here! 
    </div> 
</div> 

</body> 
</html> 

自分好みPlusは、クラスを持つ要素を見つけると(例えば).advertise_adsの場合、その要素は非表示になります。

もしそうなら、「広告をブロックしないでください!」親要素のbackground-image(この場合はGoogleロゴ)が表示されます。

広告がブロックされていない場合、広告は置換イメージをカバーします。

advertise_adssdpfjsdfjpなどに変更してみてください。広告が表示されます。

この手法は他のほとんどの広告ブロッカーでも機能すると考えています。

+0

この例は完全に機能しますが、advertise_adsクラスを他の名前に変更すると、adblockは広告を保持するセクション全体ではなく、広告スクリプトを噛んだだけです。そのため、白い背景の下の画像は表示されません。 – Flint

+0

@Flint:実際の広告がないので、白い背景はテストのためだけにあります。これが実際のサイトにあった場合は、そこに広告があります。 – thirtydot

+0

私はあなたが言ったことを理解しているかどうか分かりませんが、上記の私のコメントでは、「advertise_adsをsdpfjsdfjpのようなものに変更してみてください。いいえ。広告はまだ広告ブロックによってブロックされていますが、背景画像は表示されません。 – Flint

0

を表示するために忘れました。

<div class="advert"> 
    <!-- Adverts go here --> 
</div> 

.advert { 
    background-image: url(blah); 
    width: 120px; 
    height: 250px; 
} 

.advert > * { 
    background-color: white; 
} 

広告が広告ブロッカーによって噛みつくと、このコンテンツは代わりに表示されません。ちょうどアイデア、私は個人的に広告ブロッカーを回避しようとしたことはありません。ここで

+0

divにテキスト広告が含まれている場合、部分的に機能します。広告がブロックされているかどうかにかかわらず、広告の背後の背景画像は常に表示されます。ただし、広告がdiv領域をうまく埋めていない限り – Flint

+0

どうですか? – Hawxby

+0

が表示されますが、広告が読み込まれている間、ページ上に背景画像が飛び散っていることがわかります。 – Flint

0

あなたは、ジャバスクリプト(下記の例ではjqueryの)とそのDIVに例えば をクラスを追加することができ、

adContainer = $(".ad-container"); 
if ($(".ad-container").height() == 0) { 
    adContainer.addClass("no-ads"); 
} 

とCSSが

.no-ads { 
    background: url(the_picture.jpg) no-repeat 0 0; 
    width: ?px; 
    height: ?px; 
} 
+0

Hmm、クラスを注入興味深い:) jqueryなしでこれを行う方法を表示できますか? – Flint