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

Javascript 以编程方式检测脚本何时被阻止/加载失败,javascript,jquery,Javascript,Jquery,我正在写一个依赖于一些广告脚本的页面,如果它们被阻止,页面就会完全失败 我需要一种方法来检测是否成功加载了外部脚本——如果没有,我将强制页面在没有外部脚本的情况下继续 有没有一种方法可以通过编程实现这一点?我无法控制广告脚本的内容,所以我不能让他们设置变量或其他东西。超时是我的第一个想法,但这看起来很混乱(如果他们只是连接速度慢怎么办?)。此外,侦听脚本元素上的事件是不可靠的。这个问题有没有干净的解决方案 谢谢一种真正的低技术方法是让每个脚本在全局名称空间中放置一些内容。然后你可以检查一下它的存

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

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

有没有一种方法可以通过编程实现这一点?我无法控制广告脚本的内容,所以我不能让他们设置变量或其他东西。超时是我的第一个想法,但这看起来很混乱(如果他们只是连接速度慢怎么办?)。此外,侦听脚本元素上的事件是不可靠的。这个问题有没有干净的解决方案


谢谢

一种真正的低技术方法是让每个脚本在全局名称空间中放置一些内容。然后你可以检查一下它的存在

例如

advertisingScript1.js:

advertisingScript1Loaded = true;
...
现在,在主页中,您可以检查脚本是否已加载以下内容:

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

注意:如果脚本设置为异步加载,则在进行测试之前,您需要进行某种类型的就绪回调。

我建议您显示一条消息,说明“浏览器中的某些内容会阻止脚本。请禁用广告拦截器,并在浏览器设置中启用JavaScript。”,并在加载脚本时通过JavaScript使该消息消失。@user4970174我很想这样做,但不幸的是,这不是高级人员的基本要求。:)如问题所述,我无法控制广告脚本的内容。所以我不能让他们设置一个变量。然后查找广告脚本放在全局命名空间中的内容,并测试您是否可以控制引用广告脚本的脚本标记?如果可以,您可以使用本文中的技术来检测脚本已加载:最终使用您的脚本的修改版本评论链接解决方案。非常感谢。