如何检测文件的脚本加载://在Firefox中URL失败?

tlr*_*son 6 javascript firefox onerror

我想检测脚本标记(动态创建并添加到DOM)是否无法加载.onerror事件有效,但Firefox中的file:// URL除外.

不幸的是没有任何的技术在这里描述的(除了超时,这是我不能接受的情况下),似乎在Firefox中工作,如果脚本标签的src是一个文件:// URL(或相对URL和页面被通过文件加载: //网址)

测试用例:

var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'doesnotexist.js');
script.onerror = function() { alert("Loading failed!"); }
document.getElementsByTagName('head')[0].appendChild(script);
Run Code Online (Sandbox Code Playgroud)

将其加载到带有file:// URL的HTML页面中.onerror事件不会在Firefox中执行.从网络服务器或Safari或Chrome加载,它会.

这对我来说似乎是个错误.有没有任何已知的方法呢?

小智 1

如果您使用 Pauls 解决方案检索文档但忽略结果会怎样?如果它加载,则创建您的脚本标记。缺点是文件会加载两次。