Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测<;脚本>;标签_Javascript_Html - Fatal编程技术网

Javascript 检测<;脚本>;标签

Javascript 检测<;脚本>;标签,javascript,html,Javascript,Html,这是我想问的问题,但我想我可能把这个问题弄糊涂了 我的问题是:假设我在一些HTML中有一个标记,它没有加载,不是因为代码中有任何错误,而是因为网络错误。是否有任何方法可以通过编程方式通知此网络错误?我看到我可以将onerror事件附加到脚本标记,但是该事件的回调只会获得传递给它的事件对象,并且没有关于网络故障的信息 相反,如果我通过Ajax动态加载脚本,我有一个XHR对象,其中包含一些我可以使用的信息。我正在寻找与静态标记类似的东西 基本上我想要的是这样的东西 <script src="/

这是我想问的问题,但我想我可能把这个问题弄糊涂了

我的问题是:假设我在一些HTML中有一个
标记,它没有加载,不是因为代码中有任何错误,而是因为网络错误。是否有任何方法可以通过编程方式通知此网络错误?我看到我可以将
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文件。谢谢。我担心可能是这样,但无法证实。