首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript Img onload 在 IE 7 失效的解决方法

2012-10-31 
JavaScript Img onload 在 IE 7 失效的解决办法.转自:http://blog.mmclub.net/index/view/article_id/36?

JavaScript Img onload 在 IE 7 失效的解决办法.

转自:

http://blog.mmclub.net/index/view/article_id/36

?

网站改版的时候碰到一个问题, 那就是 JavaScript 对页面内的图片处理的时候, 在IE 7 下居然失效了. 测试表明 IE6, FF 都没有问题, 唯独 IE7 对img的 onload 事件不理会. 折腾了半天. 发现原来是 IE 缓存引起的毛病.

??? 比如通常我们对页面的图像重新格式化显示的时候(为什么格式化显示? 很明显后台编辑和前台显示不是同样的尺寸的时候, 图像会影响页面的布局.) 这样做就可以了.
  1. <script?type="text/javascript"> ?????var?imgs?=?doucument.getElementsByTagName("img"); ?
  2. ????for(var?i?=?0;?i?<?imgs.length;?i++)?{ ?????????var?newImg?=?new?Image(); ?
  3. ????????newImg.src?=?imgs[i].src; ?????????newImg.onload?=?function(){ ?
  4. ???????????//?处理图像显示各项属性.比如最简单宽度不能大于500px ????????????if(newImg.width?>?500)?{ ?
  5. ???????????????imgs[i].style.width?=?500?+?'px'; ????????????} ?
  6. ???????????//?其他的处理.... ????????} ?
  7. ????} ?</script>?
??? 通常这样是可以处理了. 但是IE在页面重复刷新的时候, 读取的是缓存里的图片. 速度非常快. 这样的话不知道为什么它就忽略了 onload 事件了. 比较恶心. 处理办法是先告诉浏览器图片载入后要干啥, 然后再去载入图像. 这样就能让IE继续响应图像的 onload 事件了. 像下面的代码:
  1. <script?type="text/javascript"> ???var?imgs?=?document.getElementsByTagName("img"); ?
  2. ??for(var?i=0;?i<imgs.length;?i++)?{ ?????var?newImg?=?new?Image(); ?
  3. ????newImg.onload?=?function()?{ ???????//?这里使用处理图像载入后的CODE ?
  4. ????} ?????newImg.src?=?imgs[i].src; ?
  5. ??} ?</script>?
??? 这样就可以啦. 本站这次被这个小毛病阴了一次. 很生气.

热点排行
Bad Request.