我需要一些简单的代码来检测被阻止的网址。
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 :(得分: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阻止的网址,它也应该有用;否则,您可以尝试使用不同的网址来查看被阻止的内容。
您也可以使用jQuery的$.ajax
函数执行此操作,但我倾向于使用vanilla JavaScript。