不会引起图片www.腾博888会官网.com的onload事件

当前位置:www.腾博888会官网.com > www.腾博888会官网.com > 不会引起图片www.腾博888会官网.com的onload事件
作者: www.腾博888会官网.com|来源: http://www.hawaiianmeds.com|栏目:www.腾博888会官网.com

文章关键词:www.腾博888会官网.com,取图片

  此时为什么要加 onload 的原因是,图片可能没加载完成,导致图片的 width 、height 无法获取到。

  这里还有有个点要注意,nImg.src= oImg.src 这段代码为什么要放在 nImg.onload 函数后面? 这样做是为了兼容 ie 。ie 除了第一次加载图片时候获取正常,之后再刷新就没有反应了。其他大部分浏览器获取正常。这是什么原因呢?

  原因也挺简单的,就是因为浏览器的缓存了。当图片加载过一次以后,如果再有对该图片的请求时,由于浏览器已经缓存住这张图片了,不会再发起一次新的请求,而是直接从缓存中加载过来。对于大部分浏览器,它们视图使这两种加载方式对用户透明,同样会引起图片的onload事件,而 ie 则忽略了这种同一性,不会引起图片的onload事件。。。一般情况下,可以用 complete 来判断图片是否加载完毕。对于 complete 属性来讲,IE是根据图片是否显示过来判断,就是说当加载的图片显示出来后,complete 属性的值才为true ,否则一直是false ,和以前是否加载过该张图片没有关系,即和缓存没有关系!可以写如下的函数来做到各个浏览器中预加载图片的兼容性。www.腾博888会官网.com如下:

  将 img 放在页面中不可见的位置上,缺点是:这种方法需要浏览器加载这张图片

  你用这种方法做后,会发现你有时可以取得 img 的 width、height ,但有时会是个 0。原因见下节分析。

  原因见下节分析:js获取图片信息(二)-----js获取img的height、width宽高值为0

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!