2012-02-07 4 views
3

私はターゲットは主に(などのお店へのリダイレクトを行うと)アフィリエイトネットワークのページであるのiframe内のリダイレクトをたくさん行ってページを持っている、マークアップが見えるようなもの:あなたのようAdblockがiframeリダイレクトをブロックしています - どのように検出するのですか?

http://jsfiddle.net/HPDNC/2/

広告ブロックを有効にすると、iframeが読み込まれません。私は何とかそれを検出する必要がありますので、私は直接リダイレクトしたり、少なくとも状況をユーザーに知らせることができます。

通常、広告ブロッカーがアクティブな場合は、単に広告をチェックするか、検出しないかを選択します。残念ながら、このページにはをチェックする実際の広告はありません。

答えて

2

あなたのサイトが広告ブロッカーで訪問されたかどうかを検出することができます。付属のJavascript detect.jsfalseからwindow.ADS_BLOCKEDを設定します

<script type="text/javascript"> 
window.ADS_BLOCKED = true; 
</script> 
<script type="text/javascript" src="/advertise/detect.js"></script> 
<script type="text/javascript"> 
if (window.ADS_BLOCKED) 
    alert('You blocked me...'); 
</script> 

: - または本当にどこにでも - <head>タグでは、これを置きます。 Ad-Blockersはファイル名( "advertise")のためにこのファイルが読み込まれないようにします。

+1

非常に粗雑なスケールで作業する広告ブロッカーに頼っています。一部のシステム(たとえば、Peerblock)には、既知の広告サイトのリストがあり、サイトを直接ブロックします。他のシステムでは要素名を処理します。すべてのシステムがこのように動作することを保証することはできません。いくつかはそうですが、すべてではありません。 –

+0

そのようなものは既に私の心に浮かんでいますが、理由は@ dawmail333が私の最後の手段だと言いました。 – Hannes

0

iframeにIDを渡すと、javascriptを使用してiframeの存在を確認できます。ここで

は例です:

<script type="text/javascript"> 

if(document.getElementById("ad") == null) { 
    alert("The ad has been removed!"); 
} 
else 
{ 
    alert("It's alright, it's still here."); 
} 

</script> 

EDIT:ただエラーを修正しました。

これは、Javascriptに広告要素にアクセスする手段を与えます。後に来るJavaScriptコード(if(document.getElementById("ad") == null))は、要素が存在するかどうかをチェックするだけです。要素が存在しない場合は、ブロックされた要素がそれを削除したことを意味します。

一部の広告ブロッカー(以前のバージョンのAdBlock for Chromeのように)は、削除する代わりに要素を非表示にするだけです。これは、DOM要素でCSSをチェックしただけなので、これを練習として残しますJQueryを通して。

EDIT 2:この回答hereを使用

、あなたは単にiframe内にHTMLが正しくロードされているかどうかを確認し、それに基づいて応答することができます。

+0

addblockはiframeを破壊しませんが、iframe内のリクエストを停止するだけで親の中に要素として存在します今まで何があったのかを文書化してください – Hannes

+0

それでは、後でその解決策を見つけることができますか? –

+0

@Hannes私は答えを更新しました。それがより適切かどうかを見てください。 –