检测<script>标记</script>中的网络错误

时间:2014-07-24 17:10:21

标签: javascript html

这是我试图在Javascript detect static <script> load failues中提出的问题,但我想我可能会混淆这个问题。

我的问题是:假设我在某些HTML中有一个<script>标记并且它没有加载,不是因为代码中的任何错误而是因为网络错误。有没有办法以编程方式通知此网络错误?我看到我可以将一个onerror事件附加到脚本标记,但是对它的回调只会传递给它的Event对象,而没有关于网络故障的信息。

相比之下,如果我通过Ajax动态加载脚本,我有一个XHR对象,它有一些我可以在其中使用的信息。我正在寻找与静态<script>标签相当的东西。

基本上我想要的是这样的

<script src="/path/to/script.js" type="text/javascript" onerror="handleError(event)"></script>

<script type='text/javascript'>
       function handleError(event) {
            // do stuff;
       }
</script>

其中“stuff”将包含阻止脚本加载的网络错误的详细信息。

1 个答案:

答案 0 :(得分:1)

请发布代码以帮助我们。

无论是加载了页面还是没有加载,网络错误都不会导致脚本错误,除非外部文件加载失败或者ajax命令返回非200状态。如果问题来自ajax,你可以在准备就绪时测试ajax对象的响应代码,如果它不是200,你可以运行你的通知或重试代码,如果错误是来自外部.js文件,因为任何原因没有加载在js文件中添加一个变量,例如var loaded = true;然后在主文件中检查它并根据需要做出反应。