2015-11-19 79 views
1

我需要一些簡單的代碼來檢測阻塞的URL。對阻止檢測Adblocker(Ghostery)的URL運行Ajax請求

SethWhite說:You could also try to run an ajax request on a URL blocked by an adblocker. If it succeeds, there's no adblocker, if it fails, there's an adblocker.

我可以用microajax做到這一點通過以下方式:

microAjax("/resource/url", function (res) { 
    alert (res); 
}); 

我怎麼能叫window.open如果請求沒有成功?

+0

彈出窗口阻止程序將阻止該FYI – epascarello

回答

2

編輯:對於microAjax,請查閱它的文檔。我想在回覆中你可以找到答覆代碼。如果代碼是200這是成功的,您可以運行window.open()。否則,請求可能被阻止。

var request = new XMLHttpRequest(); 
    request.onreadystatechange = function() { 
    if(request.readyState === 4 && request.status === 200) { 
     console.log('No blocker'); 
    } 
    else if(request.readyState === 4 && request.status === 0){ 
     console.log('Blocker exists'); 
    } 
    }; 
    request.open("GET","pathTo/ads.html"); 
    request.send(); 

這使用本地URL;我最初認爲使用外部URL是一個好主意,但如果它們被其所有者無效,則會產生誤報。

我測試了這個使用Adblock Plus,它的工作原理。如果這是一個被Ghostery阻止的URL,它應該可以工作;否則,您可以嘗試使用不同的網址查看阻止的內容。

你也可以用jQuery的$.ajax函數來做到這一點,但我傾向於使用vanilla JavaScript。

+0

完美與我的流行廣告公司和Ghostery的外部網址。 :) – GDaquila