Javascript 检测<;脚本>;标签
这是我想问的问题,但我想我可能把这个问题弄糊涂了 我的问题是:假设我在一些HTML中有一个Javascript 检测<;脚本>;标签,javascript,html,Javascript,Html,这是我想问的问题,但我想我可能把这个问题弄糊涂了 我的问题是:假设我在一些HTML中有一个标记,它没有加载,不是因为代码中有任何错误,而是因为网络错误。是否有任何方法可以通过编程方式通知此网络错误?我看到我可以将onerror事件附加到脚本标记,但是该事件的回调只会获得传递给它的事件对象,并且没有关于网络故障的信息 相反,如果我通过Ajax动态加载脚本,我有一个XHR对象,其中包含一些我可以使用的信息。我正在寻找与静态标记类似的东西 基本上我想要的是这样的东西 <script src="/
标记,它没有加载,不是因为代码中有任何错误,而是因为网络错误。是否有任何方法可以通过编程方式通知此网络错误?我看到我可以将onerror
事件附加到脚本标记,但是该事件的回调只会获得传递给它的事件
对象,并且没有关于网络故障的信息
相反,如果我通过Ajax动态加载脚本,我有一个XHR对象,其中包含一些我可以使用的信息。我正在寻找与静态
标记类似的东西
基本上我想要的是这样的东西
<script src="/path/to/script.js" type="text/javascript" onerror="handleError(event)"></script>
<script type='text/javascript'>
function handleError(event) {
// do stuff;
}
</script>
函数句柄错误(事件){
//做事;
}
其中“stuff”将包括阻止加载脚本的网络错误的详细信息。请发布代码以帮助我们帮助您
无论页面是否加载,网络错误都不会导致脚本错误,除非外部文件加载失败或ajax命令返回非200状态。如果问题来自ajax,则可以在ajax对象就绪时测试其响应代码,如果该对象不是200,则可以运行通知或重试代码,如果错误来自外部.js文件,无论出于何种原因未加载,请向js文件添加变量,如var load=true;然后在主文件中检查它,并根据需要作出反应。我知道我可以做到这一点。我是说,我想明确知道是什么原因导致它无法加载-是网关超时、请求中止还是其他原因。没有办法测试嵌入式资源上的400/500错误。我不相信,ajax确实会使用标准响应类型进行响应,因此ajax可以提供相关信息,但不会提供嵌入的.js文件。谢谢。我担心可能是这样,但无法证实。