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);
}
}
猜你喜欢
- 鉴于ASP脚本语言是在服务器端IIS或PWS中解释和运行,并可动态生成普通的HTML网页,然后再传送到客户端供浏览的这一特点。我们要在本机上
- 记得有一期ucdchina书友会里面,聊过一次大家的工作习惯问题,现在回想起来很有意思,特整理这篇文章分享给大家。关于photoshop1
- 如何在服务器端调用winzip命令行对上传的多个文件打包压缩?要解决这个问题,首先要了解一下Windows Scripting Host,简
- 网站设计似乎朝着越来越复杂的方向发展。这部分源于显示器的逐步增大,随着宽屏显示器的增多,更有加剧网站页面复杂程度的趋势。但是我接触网站设计近
- 传入参数一个,为元素的id值或元素本身,返回为元素的真实背景色值(字符串)。 值得一提的是IE里面返回的是16进制的值,而Mozi
- 没有多大变动,主要是返回错误信息,以便调用函数部分可以alert出来。据说可以用正则表达式校验,下次再研究下。//-------------
- 一个将人民币数字转化为大写的asp函数,可以准确读出数字的大写,而不是简单的将数字翻译为大写。有了这个工具大家就可以很方便的写出大写的人民币
- 1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等。如果我们想
- 在MySQL数据库中导出整个数据库:1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldu
- 一个很普通的网页中显示LOGO图像,按照以往的页面制作经验,基本是在页面中插入图像即可(<img src="logo.gif
- 如何做一个文本搜索? 比较简单,见下:<%Head = "搜索"SearchStri
- 阅读上一篇:Freshow工具使用方法一. eval加密是在网马解密中最常见的,eval在jscript脚本中实际上是一个函数,简单可以理解
- Macromedia StandardMacromedia Dreamweaver MXMenu Commandsphotoshop快捷键大
- 当管理SQL Server内在的帐户和密码时,我们很容易认为这一切都相当的安全。毕竟,你的SQL Server系统被保护在防火墙里,而且还有
- 对文本类文件(*.txt;*.html;*.doc;等等),图片类文件(*.jpg;*.gif等等)直接点击链接时会在浏览器打开,而无法出现
- 如何剔除HTML标识?这里没有使用正则表达式来去除,当然大家用正则"<.+?>"也可以实现这个功能只留下干净
- 其实我这样做的本意是为了防止盗链!大家帮忙看一下通过代码能够根治盗链!只要不是HTTP_REFERER来源于(google.com goog
- 前一阵看到一篇文章《使用css3仿造window7的开始菜单》,文中仅使用CSS3 实现了Windows 7 开始菜单的动态效果,很久以来一
- 一、数组的创建方式一var a = new Array(); a[0]="wo"
- body {font-family: Arial, sans-serif; }这是我迄今