-1

私は基本的な Adblock 検出スクリプトに取り組んでおり、うまくいくように思われるものを思いつきまし#adblock_detection_imageAdblock Plus を使用して Chrome での ID を持つ要素をページに作成すると、実行すると値が得られ、実行$('#adblock_detection_image').css('display')すると値が得られます。Adblocker のないブラウザーでこれらを実行すると、予想どおり、代わりにandが表示されます。none$('#adblock_detection_image').css('visibility')hiddeninlinevisible

これを見つけて、先に進み、解決策を作成しようとしました。ただし、問題は、広告ブロッカーが単純に検出されたときにトリガーされるコードがトリガーされないことです。コード スニペットを以下に示します。

function isUsingAdblocker(classOfAd)
{
    if(parseInt($(classOfAd).css('height')) <= 0)
{
            return true;
}
    else
{
            $('body').append('<img id="adblock_detection_image" src="/textlink-ads-banner-advert-service.jpg" style="width: 0; height: 10px;  position: relative; top: -1000px; left: -1000px;"/>');
    if($('#adblock_detection_image').css('display') != 'inline')
    {
        return true;
    }
    else if($('#adblock_detection_image').css('visibility') != 'visible')
    {
        return true;
    }
    else
    {
        return false;
    }
}
}
$(document).ready(function(){
    if(isUsingAdblocker('#Ad-One')){
        $('#Ad-One').html('<em>Please</em> disable your ad-blocking software to help support this website.<br/><span>(It\'s our primary source of income!)');
        $('#Ad-One').css('height', '90px');
    }
});
4

2 に答える 2

0

おそらく、アドブロッカーは、そこにある「#Ad-one」にある広告を含む要素を削除するため、jq でこの要素の css にアクセスすると、実際には、以前に HTML ソースから削除された unaviable 要素にアクセスします。そうではありません?

于 2012-01-14T11:10:52.170 に答える
0

Adblock は、ad やドイツ語の "werbung" など、広告によく使用される単語を含む要素を検索します。その単語を含まない別の名前を要素に付ける必要があります。最初の Web サイトでも同じ問題があり、div に「left_ad」という名前を付けました。

于 2012-01-14T11:16:33.763 に答える