`
wjboy49
  • 浏览: 284598 次
  • 性别: Icon_minigender_1
  • 来自: 湖南岳阳
社区版块
存档分类
最新评论

IE中Image.onload失效的问题

 
阅读更多

 

最近在做wBox 开发中,需要做一个图片的幻灯片效果,为了方便加载速度,我使用了new Iamge 的对象方法来预加载图片 ,当图片onLoad就运行一个函数来计算图片的大小尺寸,进行jQuery动画 ,以及切换图片src,在firefox 下开发完成后,可是到了IE下进行调试总是不会触发onload 事件,不管是IE8、IE7还是万恶的IE6,都不会触发onload事件,我很迷惑,后来在google上找到了解决 的方法:一下为引用部分

最初的代码如下:

var img = new Image;
img.src = "test.gif";
img.onload = function(){
    alert ( img.width );
};
 

这段代码看着没什么问题,但是为什么onload没有被IE调用呢?因为IE会缓存图片,第2次加载的图片,不是从服务器上传过来的,而是从缓冲区里加载的。是不是从缓冲区里加载的图片就不触发onload事件呢?我于是我测试了以下代码,成功了~

var img = new Image;
img.onload = function(){
    alert ( img.width );
};
img.src = "test.gif";
 

我把onload写到前面去,先告诉浏览器如何处理这张图片,再指定这张图片的源,这样就正常了。所以,不是IE没有触发onload事件,而是因为加载缓冲区的速度太快,以至于没有运行到img.onload的时候,onload事件已经触发了。这让我想到了Ajax ,我们在写xmlhttp的时候,都是先指定onstatechange的回调函数,然后再send数据的,道理是一样的。

分享到:
评论

相关推荐

    js的image onload事件使用遇到的问题

    标题中所提到的知识点是“js的image onload事件使用遇到的问题”,这涉及到JavaScript中Image对象的onload事件处理。在Web前端开发中,onload事件是一个非常重要的概念,主要用于处理图片或者其他资源加载完成后的...

    ie中 body onload 和 window onload 解决法案

    在网页开发中,`body.onload` 和 `window.onload` 是两个常见的JavaScript事件处理函数,用于在页面完全加载后执行特定的代码。它们都是用来确保在执行任何操作之前,页面的所有资源(包括HTML、CSS、JavaScript、...

    脱离document.onload和window.onload的onload事件

    脱离document.onload和window.onload的onload事件,可多次添加加载事件!

    window.onload

    在网页开发过程中,`window.onload` 和 `insertAfter()` 方法是两个非常实用且重要的技术点。它们可以帮助开发者更好地控制页面加载流程以及动态地操作DOM(文档对象模型)。本文将深入探讨这两个方法的基本原理、...

    Jqyery中同等与js中windows.onload的应用

    在JavaScript中,`window.onload` 是一个非常关键的事件,用于确保在页面所有资源(包括图像、脚本、样式表等)完全加载之后再执行指定的函数或代码块。这通常用于那些依赖于页面元素存在的操作,因为这些操作需要...

    JavaScript与Image加载事件(onload)、加载状态(complete)

    在网页开发中,我们经常需要动态加载图片,这时就需要利用到Image对象的加载事件(onload)和加载状态(complete)属性。这两个特性可以帮助我们实时监控图片的加载进度,从而实现更灵活的交互效果。 首先,`onload...

    jquery.imgGetSize:在图片onload之前获取图片的大小

    image-size使用该插件,可以在图片onload之前获取图片的大小,在瀑布流布局中,应该可能会有用处。###实现原理:使用轮询,在图片onload之前,获取到图片大小。如果图片已经被缓存过,直接返回相关信息。回调参数...

    IE中图片的onload事件无效问题和解决方法

    然而,在IE浏览器(尤其是旧版本)中,图片的`onload`事件可能会出现一些异常情况,导致事件无法正常触发。这个问题主要与IE的图片缓存机制有关。 当一个图片被加载一次后,IE会将其缓存起来,以便于下次快速显示。...

    H5_Camer_Image.rar

    当设置为`accept="image/*"`时,用户将能够从他们的设备库中选择图片,或者在支持的设备上,直接通过相机拍照。这个特性在移动开发中特别有用,因为许多手机用户更倾向于即时拍摄照片而不是从图库中选择。 以下是一...

    IE8中动态创建script标签onload无效的解决方法

    本文实例讲述了IE8中动态创建script标签onload无效的解决方法。分享给大家供大家参考。具体分析如下: 今天做项目,发现一个奇怪的问题,动态创建的script标签在IE8下无法触发onload事件。 代码如下: 代码如下:var...

    document.ready和window.onload.docx

    windows

    ie6图片png完美支持iepngfix

    随着浏览器更新迭代,如IE8及更高级别的版本已经原生支持PNG透明,这样的问题在新的开发环境中已经不再是难题。 总之,iepngfix是针对IE6浏览器PNG透明问题的一种解决方案,通过JavaScript技术实现对PNG图片的透明...

    微信小程序onLaunch异步,首页onLoad先执行?

    本来按照事件顺序,小程序初始化时触发App里的onLaunch,后面再执行页面Page里的onLoad,但是在onLaunch里请求获取是否有权限,等待返回值的时候Page里的onLoad事件就已经执行了。   //app.js App({ onLaunch: ...

    iframe中onload的bug

    NULL 博文链接:https://snandy.iteye.com/blog/666530

    js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)

    – function addImg(isrc) { var Img = new Image(); Img.src = isrc; Img.onload = function () { document.body.appendChild(Img); } } //–> [removed] 当包含上述代码的页面打开时并不载入 “tt.jpg” ,当点击...

    IE浏览器中图片onload事件无效的解决方法

    这样做可以避免因浏览器的加载速度过快而导致的`onload`事件失效问题。此外,Firefox等浏览器在检测到缓冲区已有图片时会直接触发`onload`事件,展示了更智能的行为。因此,编写跨浏览器兼容的代码时,对这些差异要...

    h5上传压缩图片Image.rar

    实际应用中,可能还需要考虑错误处理、多图片上传、兼容性等问题。记得在服务器端设置正确的接收方式,比如使用Node.js的Multer库处理multipart/form-data格式的数据。完成这些步骤后,用户就可以在H5应用中轻松地上...

    JS 读取Excel文件(xls) 兼容Chrome/IE/Firefox

    在JavaScript中,读取Excel文件(.xls)并兼容多种浏览器,如Chrome、IE和Firefox,是一项常见的需求。这通常涉及到文件API、ActiveXObject(针对IE)和第三方库的使用。下面将详细介绍如何实现这一功能。 首先,...

Global site tag (gtag.js) - Google Analytics