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
投稿

猜你喜欢

  • asp文章上一篇,下一篇实现代码

    2008-03-24 20:15:00
  • ASP编写完整的一个IP所在地搜索类

    2007-10-18 10:43:00
  • ubuntu下简单配置mysql数据库

    2009-07-31 09:17:00
  • 关于JS中变量的显式申明和隐式申明

    2008-09-12 13:04:00
  • 从xml中获取城市,省份名称

    2008-09-05 15:07:00
  • SQL Select语句完整的执行顺序

    2008-09-28 21:22:00
  • 认识延迟时间为 0 的 setTimeout

    2008-04-04 16:37:00
  • 安装MySQL的步骤和方法

    2009-07-30 08:38:00
  • “您无权查看该网页”的原因和解决方法

    2008-03-24 16:57:00
  • YUI Grids CSS 解读

    2008-05-28 12:49:00
  • Oracle 存储过程总结(一、基本应用)

    2009-07-07 10:21:00
  • 從無到有實現一個xml數據庫登錄驗証

    2008-09-05 17:12:00
  • 细化解析:SQL Server 2005 数据库镜像

    2009-01-23 13:41:00
  • 妙用Dreamweaver MX共享WPS Office文件

    2010-09-05 21:18:00
  • 超长文章的智能分页-支持HTML

    2008-03-20 13:21:00
  • 先学会为自己做设计

    2008-06-01 16:32:00
  • asp如何让页面过时并指定一个过时时间?

    2010-05-13 16:40:00
  • 网页设计:把导航系统做薄

    2007-12-28 12:02:00
  • display:inline问题小结

    2008-05-01 13:08:00
  • ASP动态页服务器端的处理原理

    2007-09-14 10:07:00
  • asp之家 网络编程 m.aspxhome.com