设计经验:不能忽视的遨游浏览器的兼容问题

http://www.itjxue.com  2015-08-07 21:57  来源:未知  点击次数: 

不得不承认,傲游在用户体验方面是做得比较好的,所以它的用户群非常大。也正因为如此,它的某些不好的特性也造成了开发人员不可忽略的浏览器兼容问题。

Flash缓存?

前段时间在公司一个内部项目中,需要在网页里面嵌入一个批量上传图片的Flash。这本来是很简单的事情,在IE、Firefox等浏览器下也测试通过了,然而在傲游下却出现了一个奇怪的问题:从第二次浏览该网页开始,Flash变成了一片空白。即使关闭了所谓的网页加速,还是不正常。用 Google搜了一遍后,发现唯一的解决办法是在文件地址后加一串随机数避免缓存。
IE7 or IE8?

大部分Javascript框架使用navigator.userAgent判断浏览器类型,例如:
var userAgent = navigator.userAgent.toLowerCase();
jQuery.browser = {
  version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
  safari: /webkit/.test( userAgent ),
  opera: /opera/.test( userAgent ),
  msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
  mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};

当IE的版本是8.0时,傲游的设置中会出现一个“启用IE8标准渲染模式”的选项。如果没有勾上此选项,傲游默认用IE7模式进行渲染,userAgent中标识的版本也是IE7:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CIBA; MAXTHON 2.0)

后来,我在网页区域加上了X-UA-Compatible的设置:

此时网页虽然是以IE8模式进行渲染,但userAgent中标识的版本仍然是IE7。

傲游2.5后的版本给我的感觉是越来越糟糕,在这里期待一下Webkit核心的3.0版本。

(责任编辑:IT教学网)

更多