如何使用Javascript处理err_blocked_by_client?

我的目标是检测广告拦截器。 我找到了几个很好的例子,比如FuckAdBlock 。

广告服务调用被广告拦截阻止时,我们会收到错误“err_blocked_by_client”。

我想通过以下方式处理此错误:

var xhr = new XMLHttpRequest(); try { xhr.open("GET","http://static.adzerk.net/ados.js", false); xhr.onreadystatechange = function (oEvent) { if (xhr.readyState === 4) { if (xhr.status === 200) { console.log(xhr.responseText) } else { console.log("Error", xhr.statusText); } } }; xhr.send(); } catch(error) { console.log("ConsoleLog \n " + JSON.stringify(xhr)); console.log("Error Catched" + error); } 

但在这种情况下,我无法识别catch块的错误原因。

请让我知道在此代码中处理此错误或错误的更好选项。

谢谢

你需要在你的尝试之外使用xhr变量。 它在JSON.stringify(xhr)上失败 – 因为xhr超出了范围。 您需要使用onerrorerror handling程序来处理异步XMLHttpRequest。 您还需要从传递给onreadystatechange的函数中删除oEvent参数。 见下文:

 var xhr = new XMLHttpRequest(); try { xhr.open("GET","http://static.adzerk.net/ados.js", true); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status === 200) { console.log(xhr.responseText) } else { console.log("Error", xhr.statusText); } } }; xhr.onerror = function(e) { console.log("Error Catched" + e.error); }; xhr.send(); } catch(error) { console.log("ConsoleLog \n " + JSON.stringify(xhr)); console.log("Error Catched" + error); } 
    Interesting Posts