解决IE中img.onload失效的方法

原来

$("#QrCode").on("load",function(){
    $(".loading").hide();
    alert(1);
})
//或者
document.getElementById("QrCode").onload = function(){
    $(".loading").hide();
    alert(1);
}

看起来没什么问题,但是为什么onload在ie下经常没有被调用呢?因为浏览器会缓存图片,第二次加载的图片不是从服务器传过来的,不会发起请求,但是图片的complete属性会被加上。alert(1);每次都会执行,所以猜测是错误的。

修改代码如下

var img = new Image();
img.onload = function(){

  document.getElementById("QrCode").setAttribute("src",this.src)
    $("#loading").hide();
}
img.src = "/img/img.jpg";

  

onload事件写到给imgage对象的src赋值之前了,先告诉浏览器如何处理这张图片,再指定这张图片的源,这样就正常了。

所以,不是IE浏览 器没有触发onload事件,而是因为加载缓冲区的速度太快了,以至于没有运行到obj.onload的时候,onload事件已经触发了。

时间: 2024-08-28 09:36:02

解决IE中img.onload失效的方法的相关文章

解决VNC中tab键无效的方法

http://ubuntuforums.org/archive/index.php/t-1771058.html I accidentally discovered a fix for this while trying to solve a different problem.edit~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xmlfind the line <property name="&l

JavaScript中window.onload的使用方法

JavaScript中window.onload的使用介绍 window.onload加载事件在页面内容加载完成之后立即执行相应的函数. window.onload使用方法: 1)window.onload=function(){    var tr=obj.parentNode.parentNode;    tr.parentNode.removeChild(tr);   }2)function func(){     var tr=obj.parentNode.parentNode;   

word(2)--如何解决word中首行失效的问题?

word 中如何进行首行缩进? 答:选中光标的起点,按住shift,在选择光标的止点即可.右键-->段落--->首行缩进. 为什么有时候会失效呢? 答:是因为用了"手动换行符", 快捷键shift + enter. 手动换行符的效果是:换行不换段. 如何解决呢? 答:进行全局替换,选择 "特殊格式",选择"手动换行符"--->"替换为段落符" 原文地址:https://www.cnblogs.com/vect

解决 IE7 中 display:inline-block 失效的问题

我们在做首页菜单选项的时候,通常会用 li 标签去做,通过对 li 标签设置样式: display:inline-block 可以让 li 标签横排显示.但是这样做,在 IE7 浏览器下面会有一个兼容性问题: display:inline-block 不会被识别. 如在下面的 html 结构中: <ul class="nav"> <li></li> <li></li> <li></li> <li&

解决自定义leftBarButtonItem返回手势失效的方法

考虑到interactivePopGestureRecognizer也有delegate属性,替换默认的self.navigationController.interactivePopGestureRecognizer.delegate来配置右滑返回的表现也是可行的.在主ViewController中: - (void)viewDidLoad { [super viewDidLoad]; self.navigationController.interactivePopGestureRecogni

解决IIS8中 URLRewriter 不能使用的方法

1.把应用程序池改成集成 2.的web.config 加入代码 <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="true" > <add name="UrlRewriter" type="Intell

解决PNG图片在IE6中背景不透明方法_解决IE6中PNG背

解决PNG图片在IE6中背景不透明方法_解决IE6中PNG背 目录 解决代码 解决png图片在html中 解决png作为网页背景-css 1.解决PNG图片在IE6中背景不透明的CSS与JS代码   -   TOP JS代码  function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var arVersion = navigator.appVersion.split("MSIE&quo

解决Ubuntu 12.10中ZIP文件名乱码的方法

转摘源地址:http://blog.csdn.net/jiangxinyu/article/details/8206395 安装(12.04及以上): 代码: sudo apt-get install unar 假设需要解压的ZIP包是foo.zip 代码: lsar foo.zip #列出所有文件 如果列出的文件名已经正确 代码: unar foo.zip #解压所有文件 如果列出的文件名还不正确 代码: lsar -e GB18030 foo.zip #指定使用GB18030编码列出所有文件

VBS中解决路径带空格的三种方法

vbs中,如果需要运行的程序中带有空格,按照通常的方式往往会提示错误,其实有两种形式不同的解决方法: 在应用程序前后分别加三个双引号,代码如下: [c-sharp] view plaincopyprint? Set wshell=CreateObject("WScript.Shell") wshell.Run  """C:/Program Files/360/360se/360se.exe""",5,True Set wshe