转自:
http://blog.mmclub.net/index/view/article_id/36
网站改版的时候碰到一个问题, 那就是 JavaScript 对页面内的图片处理的时候, 在IE 7 下居然失效了. 测试表明 IE6,
FF 都没有问题, 唯独 IE7 对img的 onload 事件不理会. 折腾了半天. 发现原来是 IE 缓存引起的毛病.
比如通常我们对页面的图像重新格式化显示的时候(为什么格式化显示? 很明显后台编辑和前台显示不是同样的尺寸的时候, 图像会影响页面的布局.) 这样做就可以了.
-
<script type=
"text/javascript"
>
-
var
imgs = doucument.getElementsByTagName(
"img"
);
-
for
(
var
i = 0; i < imgs.length; i++) {
-
var
newImg =
new
Image();
-
newImg.src = imgs[i].src;
-
newImg.onload =
function
(){
-
-
if
(newImg.width > 500) {
-
imgs[i].style.width = 500 +
'px'
;
-
}
-
-
}
-
}
-
</script>
通常这样是可以处理了. 但是IE在页面重复刷新的时候, 读取的是缓存里的图片. 速度非常快. 这样的话不知道为什么它就忽略了
onload 事件了. 比较恶心. 处理办法是先告诉浏览器图片载入后要干啥, 然后再去载入图像. 这样就能让IE继续响应图像的 onload
事件了. 像下面的代码:
-
<script type=
"text/javascript"
>
-
var
imgs = document.getElementsByTagName(
"img"
);
-
for
(
var
i=0; i<imgs.length; i++) {
-
var
newImg =
new
Image();
-
newImg.onload =
function
() {
-
-
}
-
newImg.src = imgs[i].src;
-
}
-
</script>
这样就可以啦. 本站这次被这个小毛病阴了一次. 很生气.
分享到:
相关推荐
javaScript的onload事件的代码,javaScript内嵌在html中。
onload.diff.img:onload.diff_img
有需要的朋友是最好的参考资料。希望有所帮助!
但IE在第二次显示图片的时候,总是不走 onload 方法。代码: var img = new Image(); img.src = "loading.gif"; img.onload = function(){ var iheight = img.height; var iwidth = img.width; }; 后来给xiaoniu...
仅img元素创建后不添加到文档中会执行onload事件的解决方法,需要的朋友可以参考下。
在web开发在获取图片宽高是很正常的事情,图片在加载完成前是获取不到图片的宽高的,在加载完成后才可以获取图片本身的宽高,例如: 代码如下:var img = new Image();img.src = “loading.gif”;img.onload = ...
NULL 博文链接:https://snandy.iteye.com/blog/666530
脱离document.onload和window.onload的onload事件,可多次添加加载事件!
主要介绍了IE8中动态创建script标签onload无效的解决方法,涉及针对javascript加载顺序的调整,具有一定的参考借鉴价值,需要的朋友可以参考下
内容目录 1 简介.................... 3 2 Dojo工具包:JavaScript开发的水槽(Kitchen Sink)..........7.1.3 onLoad.......... 11 8 结论.............................. 12 9 作者简历...................... 12
看个例子: 代码如下: <input type=”button” name=”... Img.onload = function () { document.body.appendChild(Img); } } //–> [removed] 当包含上述代码的页面打开时并不载入 “tt.jpg” ,当点击按钮时候才载
image-size使用该插件,可以在图片onload之前获取图片的大小,在瀑布流布局中,应该可能会有用处。###实现原理:使用轮询,在图片onload之前,获取到图片大小。如果图片已经被缓存过,直接返回相关信息。回调参数...
基于jquery开发的一个小插件,主要作用是绑定图片(img标签)的onload事件,如果是纯JavaScript开发,可借鉴下面的代码: var imgLoad = function (url, callback) { var img = new Image(); img.src = url; if ...
img的onload的另类用法
用于根据用户使用的联合域UPN自定义ADFS登录页面的Javascript。 有关更多信息,请参见: : 这似乎需要修订,因为它不适用于博客文章中描述的所有工作流程。
问题出在最后面,测试的时候发现在IE下loading类无法删除,当时代码如下: 代码如下:img.src = _src;img.src = _src;img.onload = function(){ _con.delClass(‘loading’);}网上找了一番,onload和定义src的语句...
但是经过测试,body还是可以带onload事件的, 所以我解决的办法就是在页面全部加载完后再处理太大的图片.于是我用JS写了一段简单的代码 相关代码 function ReImgSize(){for (j=0;j<document.images.length;j++)...
在需要对img进行onload事件绑定的时候,一般大家都会想到用常规的方法进行事件绑定此时大家会发现alert(1)并没有执行,这是什么原因呢?特别是在ie和ff浏览器下这是为什么呢,本文将详细为您解答