我正在加载一个只需要我网页的一部分的 JS 文件,只有当用户导航到页面上的那个选项卡时。
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是先从“未初始化”变为“正在加载”,然后再变为“已加载”。当状态为“正在加载”时,显示错误消息。之后,状态变为“已加载”,此时正在显示内容。
任何想法如何处理这个问题,所以最初不会显示错误?