【问题标题】:Javascript: Handle GET Error (document.createElement)Javascript:处理 GET 错误 (document.createElement)
【发布时间】:2013-10-11 11:47:27
【问题描述】:

我正在尝试将 JS 文件“包含”到我的文档中。它工作正常,但是当文件脱机时,它应该将变量设置为 FALSE。我用谷歌搜索了它,但我没有得到它。所以我用 try/catch 试了一下:

    try {
      var jq = document.createElement('script');
      //jq.onload = put;
      jq.type = 'text/javascript';
      jq.src = 'http://127.0.0.1:9666/jdcheck.js';
      document.getElementsByTagName('head')[0].appendChild(jq);
    }
    catch(e) {
    console.log('An error has occurred: '+e.message);
        jdownloader = false;

    }

它只是给我抛出错误

  Failed to load resource http://127.0.0.1:9666/jdcheck.js

如何将 var 设置为 FALSE?

谢谢, 马库斯

【问题讨论】:

  • jdownloader 在执行catch 子句时将为false。你到底想要什么
  • 你真的得到错误抛出吗?难道这只是一个警告?因为这样 catch 块将永远不会执行。
  • 您可以在 script 标签上使用 onload 事件。如果它从不触发,则无法加载资源。

标签: javascript google-chrome error-handling createelement


【解决方案1】:

你做错了。在检查是否可以加载脚本源时,内置了 onloadonerror 事件,因此您不需要 try / catch 块,因为这些块用于脚本执行错误,而不是“404 文件不found" 错误,并且 catch 部分不会被 404 执行:

var jq = document.createElement('script');
jq.onload = function() {
    // script loaded successfully
}

jq.onerror = function() {
    // script error
}

jq.type = 'text/javascript';
jq.src = 'http://127.0.0.1:9666/jdcheck.js';
document.getElementsByTagName('head')[0].appendChild(jq);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 2019-05-21
    相关资源
    最近更新 更多