2012-01-14 3 views
-1

기본 Adblock 감지 스크립트에서 작업 중이며 과 같아 보이는 것이 있는데 일 것입니다. Adblock Plus가있는 Chrome에서 ID가 #adblock_detection_image 인 페이지에 요소를 만들 때 을 실행하면 $('#adblock_detection_image').css('visibility')hidden 값을 제공합니다. Adblocker가없는 브라우저에서 실행하면 inlinevisible이 대신 발생합니다.Adblock 감지 관련 문제

이 사실을 발견하고 앞서 나가서 해결책을 찾으려고했습니다. 그러나 문제는 adblocker가 감지되었을 때 트리거해야하는 코드가 트리거되지 않는다는 것입니다. 코드 스 니펫은 아래와 같습니다.

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'); 
    } 
}); 
+0

'adClass'는 어디에 정의되어 있습니까? 귀하의 페이지를 볼 때 그것의'undefined' – Andreas

+0

@ john_doe 아! 최근 수정 된 변수를 삭제하고 document.ready에서 변수를 변경하는 것을 잊었습니다. 지금은 해결되었지만 여전히 작동하지 않습니다. –

+0

그것은 나를 위해 작동합니다! – noob

답변

0

아마도, adblocker는 elemet가 "# 광고 - 하나"의 광고를 포함 제거, 그래서 당신은 현실에서, JQ하여이 요소의 CSS를 액세스 할 때 당신은 제거 된 unavilable 요소에 액세스 html 소스 early.isnt 사실입니까?

+0

@msk 틀린 AdBlocker는 각 페이지에 추가 된 CSS 파일입니다.이 CSS 파일에는 나열된 광고 선택기가 많이 포함되어 있으며 일반적으로이 광고 요소는 모두 'display : none! important;'로 설정됩니다. – noob

+0

신뢰할 수 있습니다. D tanx 님의 의견을 환영합니다. – msk

0

Adblock은 광고 또는 독일어 "werbung"또는 광고에 자주 사용되는 다른 단어와 같은 단어가 포함 된 요소를 검색합니다. 요소에 해당 단어가 포함되지 않은 다른 이름을 지정해야합니다. 첫 번째 웹 사이트에서 동일한 문제가 발생하여 div라는 이름을 left_ad로 지정했습니다.

+0

Adblock에서 항상 AdSense를 감지하도록 사용하고 있습니다. OP에서 보여주는 코드 스 니펫은 Adblocks의 관심을 성공적으로 받아야하므로'$ ('adblock_detection_image'). css ('display')'를 콘솔에서 시도 할 때 'none'이됩니다. 페이지의 부하에서 OP 스 니펫을 실행할 때 - 작동하지 않는 것 같습니다. –

+0

@ DRP96 틀린 AdBlocker는 각 페이지에 추가 된 CSS 파일입니다.이 CSS 파일에는 나열된 광고 선택기가 많이 포함되어 있으며 대개 이러한 광고 요소는 모두 'display : none! important;'로 설정됩니다. – noob

+0

@micha, 그래, 나는 그것을 안다. 제가 말한 것은 단지 상징적 인 의미였습니다. – Dion