JavaScript有这个伟大的callbackwindow.onerror 。 跟踪任何错误非常方便。 但是,它会调用错误名称,文件名和行。 这当然不像从try…catch语句中获取实际的错误对象那么丰富。 实际的错误对象包含更多的数据,所以我试图去解决这个问题。 不幸的是,当你开始拥有asynchronous代码时, try…catch语句不能正常工作。 有没有办法把两个世界的最好结合起来? 我最初寻找一种方法来获取在onerror块内触发的最后一个错误,但它看起来像JS不存储。 任何线索?
有没有一种方法来确定图像path是否会导致实际的图像,也就是说,检测图像无法在Javascript中加载时。 对于Web应用程序,我parsingXML文件,并从图像path列表dynamic创buildHTML图像。 某些图像path可能不再存在于服务器上,因此我想通过检测哪些图像无法加载并删除该HTML img元素来优雅地失败。 注意JQuery解决scheme不能被使用(老板不想使用JQuery,是的,我知道不让我开始)。 我知道在JQuery中的一种方式来检测图像何时加载,而不是它是否失败。 我的代码来创buildimg元素,但我如何检测imgpath导致加载失败的图像? var imgObj = new Image(); // document.createElement("img"); imgObj.src = src;
我dynamic地添加<script>标签到页面的<head> ,我想能够判断加载是否以某种方式失败 – 一个404,在加载的脚本中的脚本错误,无论如何。 在Firefox中,这个工作: var script_tag = document.createElement('script'); script_tag.setAttribute('type', 'text/javascript'); script_tag.setAttribute('src', 'http://fail.org/nonexistant.js'); script_tag.onerror = function() { alert("Loading failed!"); } document.getElementsByTagName('head')[0].appendChild(script_tag); 但是,这在IE或Safari中不起作用。 有谁知道一种方法,使之在Firefox以外的其他浏览器的工作? (我不认为需要在.js文件中添加特殊代码的解决scheme是一个很好的解决scheme,它不够灵活和不灵活)。