以编程方式检测脚本何时被阻止/无法加载

时间:2015-09-01 15:47:32

标签: javascript jquery

我正在写一个依赖于某些广告脚本的页面,如果它们被阻止,那么页面就完全失败了。

我需要一种方法来检测外部脚本是否成功加载 - 如果没有,我会强制页面在没有它们的情况下继续。

有没有办法以编程方式执行此操作?我无法控制广告脚本的内容,因此我无法让他们设置变量或其他内容。超时是我的第一个想法,但这似乎很混乱(如果他们只是一个缓慢的连接会怎么样?)。此外,监听脚本元素上的事件是不可靠的。这个问题的任何干净的解决方案?

谢谢

1 个答案:

答案 0 :(得分:1)

一种真正的低技术方式是将每个脚本放入全局命名空间中。然后你可以检查它的存在。

E.g。

advertisingScript1.js:

advertisingScript1Loaded = true;
...

现在在您的主页面中,您可以检查脚本是否已加载:

if (typeof advertisingScript1Loaded !== 'undefined' && advertisingScript1Loaded) {
    // Do something that relies on the script
    ...
}

请注意,如果脚本设置为异步加载,则在进行测试之前需要进行某种准备回调。