运行 对 URL 的 Ajax 请求因检测 Adblocker (Ghostery) 而被阻止
Run an Ajax request on a URL blocked for detecting Adblocker (Ghostery)
我需要一些简单的代码来检测被阻止的 url。
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
?
编辑:对于 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;我最初认为使用外部 URLs 是个好主意,但如果它们的所有者使它们无效,你就会得到误报。
我使用 Adblock Plus 对此进行了测试,它有效。如果这是被 Ghostery 阻止的 URL,它应该也能正常工作;否则,您可以尝试不同的 URLs 以查看被阻止的内容。
您也可以使用 jQuery 的 $.ajax
函数来执行此操作,但我更喜欢原版 JavaScript。
我需要一些简单的代码来检测被阻止的 url。
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
?
编辑:对于 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;我最初认为使用外部 URLs 是个好主意,但如果它们的所有者使它们无效,你就会得到误报。
我使用 Adblock Plus 对此进行了测试,它有效。如果这是被 Ghostery 阻止的 URL,它应该也能正常工作;否则,您可以尝试不同的 URLs 以查看被阻止的内容。
您也可以使用 jQuery 的 $.ajax
函数来执行此操作,但我更喜欢原版 JavaScript。