我正在写一个依赖于某些广告脚本的页面,如果它们被阻止,那么页面就完全失败了。
我需要一种方法来检测外部脚本是否成功加载 - 如果没有,我会强制页面在没有它们的情况下继续。
有没有办法以编程方式执行此操作?我无法控制广告脚本的内容,因此我无法让他们设置变量或其他内容。超时是我的第一个想法,但这似乎很混乱(如果他们只是一个缓慢的连接会怎么样?)。此外,监听脚本元素上的事件是不可靠的。这个问题的任何干净的解决方案?
谢谢
答案 0 :(得分:1)
一种真正的低技术方式是将每个脚本放入全局命名空间中。然后你可以检查它的存在。
E.g。
advertisingScript1.js:
advertisingScript1Loaded = true;
...
现在在您的主页面中,您可以检查脚本是否已加载:
if (typeof advertisingScript1Loaded !== 'undefined' && advertisingScript1Loaded) {
// Do something that relies on the script
...
}
请注意,如果脚本设置为异步加载,则在进行测试之前需要进行某种准备回调。