javascript - 以编程方式检测脚本何时被阻止/加载失败

标签 javascript jquery

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

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

有没有办法以编程方式执行此操作?我无法控制广告脚本的内容,因此我无法让它们设置变量或其他内容。超时是我的第一个想法,但这看起来很困惑(如果他们的连接速度很慢怎么办?)。此外,监听脚本元素上的事件并不可靠。这个问题有什么干净的解决方案吗?

谢谢

最佳答案

真正的低技术方法是让每个脚本将某些内容放入全局命名空间中。然后你可以检查它是否存在。

例如

advertisingScript1.js:

advertisingScript1Loaded = true;
...

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

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

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

关于javascript - 以编程方式检测脚本何时被阻止/加载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335883/

相关文章:

javascript - 如何通过将 Cypress 指定为项目来让 Cypress 运行特定的测试文件夹?

javascript - 响应式 Filemanager 9 在 TinyMCE 4 中打开空白对话框

jquery - tinyMCE 模态弹出窗口原样用于其他用途

javascript - 选中复选框将类添加到 child

javascript - 使用两个不同的数组创建分组数组

javascript - <script> 评论格式无效?

javascript - 返回屏幕上的img

javascript - Emberjs 如何绑定(bind) id

javascript - ReferenceError : $ is not defined when making Ajax api call in asp.net razor 页面

Javascript/Jquery 未捕获类型错误试图替换 html