- 浏览: 2830125 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
在调试js时遇到一些恶心的问题,于是做了一个测试程序,放到网上让大家帮我测试。帖子见http://vchelp.net/cndevforum/subject_view.asp?page=-1&subject_id=165791
下面我给出关于测试的解释:
起因源于我想做这么一个网页:用户上传一个图片后,如果图片大于500象素,则在客户
端把图片缩小成500象素大小。但是不想让用户看到这个大小调整过程。于是想首先隐藏这个图片,在整个网页下载完成后,调整大小,然后再显示调整好的图像。
于是我首先设置img标签的style="display:none",然后在window.onload中获取原图大小,进行调整。
<img src="http:......" style="display:none" id="c010_jpg">
结果发现firefox下,一个disolay=none的图像width和height是原图的实际大小,但是ie下却都是0
于是想到稳妥的办法是建立一个image对象,然后对src赋值,进而读取原图大小的信息:
var oImg = new Image();
oImg.src = docunent.getElementById("c010_jpg").src;
//马上读取oImg的width和height
alert([oImg.width, oImg.height]);
结果在ie测试发现,上面的代码会输出“0,0”
我怀疑这说明当ie解析一个display:none的img标签时,并没有下载这个图片,所以上面的代码对oImg.src赋值后ie需要从目标地址下载这个图片,当然,这个过程是异步的过程
而在firefox下,上面的代码会输出正确的信息,这说明firefox解析display:none的图片时,已经下载了这个图片。以后再对oImg.src赋值时,直接从缓存中获取,所以速度快
想到这一点我只好用更复杂更稳妥的办法了:
var oImg = new Image();
oImg.onload = function (){alert([oImg.width, oImg.height]);}
oImg.src = docunent.getElementById("c010_jpg").src;
//当src被载入后,输出oImg的宽和高
使用
事件和回调函数是没办法的事情。处理这种异步过程使程序结构变得很难看。
另外,在w3c中( http://www.w3.org/TR/REC-DOM-Level-1/idl-definitions.html)没有找到HTMLImageElement的readyState和complete属性,
发现firefox实现了complete属性,而ie实现了complete属性和readyState属性
但是两者对属性的定义好像不同:
firefox: 一个图像被下载完毕,complete属性就是true,没有下载完毕则为false
ie:
一个图像没有被下载完毕,则readyState属性为uninitialized,complete属性是false.当下载完毕时,
readyState为complete,而如果此时图片还没有显示,complete为false,显示以后(display:block)此属性才变
成true
没想到一个简单的功能竟然这么费劲,浏览器的兼容问题很难顺利解决,特别是很多细节非常浪费时间,希望别人遇到这些问题时还是多考虑从服务端脚本中解决这些问题。从而绕过对浏览器兼容的复杂测试。
另外我还非常疑惑,为什么现实中的ie对于onload事件,大部分不是异步的,只有少数同志的ie对于此事件是异步的。
评论
发表评论
-
前端与后端的测试工具组合
2015-01-15 13:03 2145在Java领域,Apache, Spring, JBoss ... -
Design Pattern Categorization
2014-12-12 15:44 638Learning JavaScript Design P ... -
Java Design Patters Details
2014-12-05 14:10 682By Jason McDonald ABOUT DESIG ... -
单例模式(singleton)的一种写法
2014-12-05 11:26 582public class ModbusDetai ... -
Use Builder pattern to avoid method has too many parameters
2014-01-21 09:44 782sometimes, we have a class ... -
函数和方法的迪米特法则
2013-06-28 10:39 997有一个方法M,它存在于对象O中。对象O的M方法只引用下面几种 ... -
Java编程中“为了性能”尽量要做到的一些地方
2012-03-09 19:07 1136最近的机器内存又爆满了,除了新增机器内存外,还应该好好re ... -
软件天才都是训练出来的
2011-01-03 11:15 1171长期以来,“软件业 ... -
Quest JProbe最佳实践指南
2010-11-25 17:42 18131. 介绍 在Java的广泛 ... -
2010年大规模技术架构的思路
2010-03-21 18:16 932相比其他行业,IT技术由于信息流动便捷,新技术更新非常频繁。架 ... -
领域驱动设计和开发实战
2009-06-05 13:20 1574背景 领域驱动设计(DDD)的中心内容是如何将业务领域概念映 ... -
基于Zigbee协议的OSGi无线家庭网关设计
2009-03-16 10:23 31851 引言 随着internet的 ... -
软件性能问题的几点分析
2009-01-19 15:52 1351【IT168技术分析】 2008年已经过去了,忙忙碌碌的 ... -
怎样成为优秀的软件架构师
2008-12-13 12:39 1702【IT168 评论文章】 近来读了一篇《怎样成 ... -
写给我的团队-代码篇
2008-11-30 23:16 1349看了neora的大作写给我 ... -
各大型网站架构分析收集
2008-11-26 23:24 24601. PlentyOfFish 网站架构学 ... -
domain object模型探讨(robbin原创)
2008-11-05 09:57 2290有兴趣可看此处原文及相关讨论:总结一下最近关于domain o ... -
一次性能调优的实战
2008-09-02 15:42 1442【IT168技术文档】 项目 ... -
用户故事估算技巧
2008-09-02 12:47 1599用2的幂进行估算 开始 ... -
UML我拿什么来用你?
2008-08-04 09:59 1337【IT168分析评论】或许我这样评价不是很公正! 因为UML ...
相关推荐
兼容IE和Firefox获得keyBoardEvent对象的键值
在文本中大量区分网页在IE与 fireFox里面js的区别与不同的表现方式,与达到统一的解决方法
IE+Firefox浏览器下搭建EBS的Form环境,实现IE,Firefox下Form同时工作
IE和firefox 调试 javascript css html 插件 exe文件为IE的,另一个为firefox的 AJAX开发必备
IE与Firefox的事件区别 关于设事件和获取事件两者的区别
Javascript的IE和Firefox(火狐)兼容性解决方案
JavaScript在IE和Firefox(火狐)的不兼容问题解决
mxGraph破解包含ie和firefoxmxGraph破解包含ie和firefox
Javascript在IE和FireFox中的不同表现,总结IE和火狐的差异。
IE6.0、IE7.0 与FireFox CSS兼容的解决方法
解决IE6 IE7 Firefox中li兼容问题
经过三天的苦战,查询无数的国外网站终于实现了对IE和FireFox浏览器的URl地址实时监控。利用API和DDE分别对IE和FireFox进行了浏览器地址获取,完整的源码程序,与大家分享学习。后期将完善,实现对IE,FireFox,360,...
welcome to download Ie和firefox的Js区别
Javascript在IE和FireFox中的兼容处理
特别是javascript的兼容性问题,典型代表就是IE浏览器和FireFox浏览器,了解到不同之处就可以避免出现使用不同浏览器时可能会出现的兼容性问题,找了一些关于js在IE和FireFox中区别的资料,以供参考。
JS的IE和Firefox兼容性总结
在Firefox下直接调用IE浏览器(IETab这个插件).zip
讲解IE 和 Firefox 浏览器 JavaScrip脚本兼容的应用。包括函数、属性、方法的讲解。适合IE与Firefox的通脚本。
博文链接:https://lifethinker.iteye.com/blog/249560