【发布时间】:2009-11-05 11:06:53
【问题描述】:
我正在加载一个 JS 文件,该文件仅适用于我的网页的一部分,仅当用户导航到页面上的该选项卡时。p>
var scriptFile = document.createElement("script");
scriptFile.setAttribute("type", "text/javascript");
scriptFile.setAttribute("src", scriptURL);
我正在尝试为此动态加载提出一种错误处理机制,以便在 JS 加载超时或 JS 在 URL 指定的位置不可用时显示错误消息。
这就是我尝试实现错误处理的方式(对于 IE):
scriptFile.onreadystatechange = function() { // For IE
if (this.readyState == 'complete' || this.readyState == 'loaded') {
// Display content in tab
} else {
// Display error message
}
}
这导致了一个问题。当一切正常并且 JS 按预期存在时,我会先收到错误消息,然后才是正确的内容。
经过一番头脑风暴,我发现readyState是先从“未初始化”变为“正在加载”,然后再变为“已加载”。当状态为“正在加载”时,显示错误消息。之后,状态变为“已加载”,此时正在显示内容。
任何想法如何处理这个问题,以便最初不显示错误?
【问题讨论】:
-
更新:即使给定的 URL 中没有 JS,我也需要显示错误消息。即使 JS 出现 404 错误,状态也会变为“完成”,并且页面正在尝试显示数据.. 显示 JS 错误。我该如何处理?
标签: javascript error-handling dynamic-loading