webkit 内核浏览器,<img>异步加载相同URL,不触发load事件的BUG

      最近一个项目的前端部分是依靠img.onload 来实现的.可是经常会出现加载不出图片的情况 ,由于出现相邻两次加载相同图片的概率很小,所以一直没能还原bug,让人头疼很久.昨天实在是忍不了了,在猎豹浏览器上疯点几千下,终于终结出问题的根源:相邻两次加载相同的src 属性 .不触发 onload 事件.chrome\qq 等使用webkit内核的浏览器都会出现这种情况.

      自己写了一个小程序测试了下.发现的确是这个样子

    测试程序:

 img.onload = function ()
    {
        count++;
    }
    for (var i = 0; i < 100; i++)
    {
        img.src = "new src";
        count1++;
    }
    //在 webkit 内核浏览器下 count 和count1 会出现差异.ff 和ie 下没有问题.

解决办法:

 var img = new Image();//在每次 服务器回发 中 均新创建一个Image对象
    img.src = "赋值";     //将新内容赋值给新创建的Image对象
    img.οnlοad=function()
    {
        //需要在图片加载的过程中执行的代码
        //这个位置的代码就可以都执行了
    }
    old_img.src = img.src;//对原来的 img标签src 属性赋值

 

转载于:https://www.cnblogs.com/lijinghui/archive/2012/11/18/2775536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值