img.onerror does not seem to work for IE8

我与影子孤独终老i 提交于 2019-12-01 09:40:26

问题


I am trying to load an image from a url to check internet connectivity. When no internet connection, it should display a dojo warning dialog. This works for Firefox but does not for IE8.

Following is the code snippet:

var img = new Image();
img.src = userGuideUrl1_img + '?' + (new Date).getTime();
img.onload = function() {
        window.open(userGuideUrl1);
}
img.onerror = function() {
    dojo.addOnLoad(warningDialogFunc);
}

Here warningDialogFunc is a dojo object. Any thoughts? Thanks


回答1:


Could it be that the page is already loaded by the time the img.onerror handler is executed, and IE doesn't rexecute the function for the dojo.addOnLoad(warningDialogFunc)?

Try changing

img.onerror = function() {
    dojo.addOnLoad(warningDialogFunc);
}

to simply:

img.onerror = function() {
  warningDialogFunc();
}



回答2:


You have to set up the handler before you set the source of image, when you change the src attribute, IE will try to download the image and trigger the events.

var img = new Image();
img.onload = function() {
        window.open(userGuideUrl1);
}
img.onerror = function() {
    dojo.addOnLoad(warningDialogFunc);
}
img.src = userGuideUrl1_img + '?' + (new Date).getTime();  // Trigger image download and the handlers.


来源:https://stackoverflow.com/questions/7574649/img-onerror-does-not-seem-to-work-for-ie8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!