ie6 img onload

作者:xlingfairy 来源:dajiaozi.com 时间:2009-04-08 17:23:00 

IE>6 及其它浏览器不在此文论述范围内。

img 的 onload 事件,是当图片加载完成之后,就处触发。img.complete 这个属性标识着这个图片是否以加载完成。

一般情况下,new Image(),onload 应该写在 img.src="/xxx" 的前面,这样可以避免一部分情况(部分浏览器)下,onload事件不触发,比如 图片以存到本地缓存内,第二次加载这个图片,速度非常快,还来不及触发 onload。如果接合 img.complete 这个东东来处理,基本上所有的上述情况都可以排除掉。但是有一个例外:IE6


假如我要做一个幻灯片,不是通过改变 图片的路径 ,而是 用 new Image(),当然,在 new 之前,先把图片的容器的内容清空,如:

        objs.showArea.className = 'showArea';
        objs.showArea.innerHTML = "";
        var img = new Image();
        img.onload = img_loaded;//这是个回调函数
        img.src = vars.normals[idx];
        objs.showArea.appendChild(img);

在除IE6之外的浏览器里运行,效果非常满意,但是换到 ie6 下, img_loaded 这个回调却有80%的机率不调用。为了找到原因,我来来回回折腾了N长时间,才用 setTimeout 解决这个问题:   

 $.show = function(idx){
 。。。
        if(JObj.Browser.ie && JObj.Browser.version <= 6)
            setTimeout(JObj.doFunction(_show,idx),0);////////////
        else
            _show(idx);
 。。。
    }
    var _show = function( idx ){        
        var img = new Image();
        img.onload = img_loaded;
        img.src = vars.normals[idx];
        objs.showArea.appendChild(img);
        /*if(img.complete){
         img_loaded(null,img);
        }*/
        
        vars.idx = idx;
        objs.btnOrg.href = vars.normals[vars.idx];
        objs.tb.setPosition(idx);
    }

这个 _show() 原来是要直接调用的函数 show().

另外,我用 styleSheet.addImport 这个方法来加载 css ,发现在IE6下,请求发出后,随即又终止了(aborted),木有办法,只好换另外一个方法:createStyleSheet

  $.loadCss = function(cssFile) {
            if(document.createStyleSheet)
                document.createStyleSheet(cssFile);
            else{
                if (styleSheet == null) {
                    var style = $$.$c('STYLE');
                    $$.$tag("HEAD")[0].appendChild(style);
                    styleSheet = style.styleSheet || style.sheet;
                }
                styleSheet.insertRule("@import url('" + cssFile + "');", styleSheet.cssRules.length);
            }
        }

标签:图片,加载,ie6
0
投稿

猜你喜欢

  • 如何对Mysql 数据表压缩

    2010-11-25 17:21:00
  • Python连接mssql数据库编码问题解决方法

    2024-01-24 04:41:20
  • Python+Tensorflow+CNN实现车牌识别的示例代码

    2021-06-30 08:44:05
  • Python远程开发环境部署与调试过程图解

    2023-06-07 08:10:40
  • 学ASP应该注意ASP程序书写的规范标准

    2008-10-17 10:16:00
  • asp中设置session过期时间方法总结

    2013-06-01 19:52:04
  • 可插入图片的TEXT文本框

    2024-02-25 20:07:36
  • Python 实现集合Set的示例

    2021-10-04 06:27:19
  • JavaScript获取GridView中用户点击控件的行号,列号

    2024-04-23 09:30:04
  • PHP PDOStatement::fetchColumn讲解

    2023-06-06 09:17:20
  • pytorch模型转onnx模型的方法详解

    2021-07-20 06:36:37
  • Git在Windows中安装与使用教程

    2023-11-01 08:47:55
  • python中scipy.stats产生随机数实例讲解

    2021-03-20 07:57:04
  • SQL Server 2005实现数据库缓存依赖

    2009-05-07 13:20:00
  • 基于Django框架的rest_framework的身份验证和权限解析

    2021-02-21 23:42:58
  • 基于XML语言的来实现购物车的详细代码

    2008-05-29 13:57:00
  • 使用 XSLT 解释 XML 文件

    2009-03-08 19:06:00
  • 简单谈谈centos7中配置php

    2024-03-12 02:42:33
  • 一步步教你在Navicat上如何停止正在运行的MYSQL语句

    2024-01-21 06:17:01
  • 详细解读php的命名空间(一)

    2023-06-19 08:02:59
  • asp之家 网络编程 m.aspxhome.com