下边这张图是2011年2月份各浏览器的市场占有率状况,这说明只要我们这群B/S开发者只要再努力一下下就可以把IE6给终结掉了,让其彻底退出历史舞台.
Internet Explorer 6 是曾经浏览器的霸主, 击垮 Netscape 并最终占据 95% 的浏览器市场. 但如今已经功能性能落后, 还需要特殊照顾, 被称为阻碍网络技术向前发展的障碍.
IE6 为何不死?IE6 久久不离其位当然是有原因的, 根据网上资料与个人总结, 得出以下几点:
1. 普及时间长, 用户已经形成了使用习惯, 甚至形成以偏概全的认知. XP 的成功和长寿让 IE6 成为大家最熟悉的软件之一, 而且 2001 到现在正是网络发展最快速的几年, 很多用户一直只适用 IE6, 他们找不到 Internet Options 菜单项, 无法理解其他浏览器新奇的标签和工具, 甚至认为 IE6 就是网络.
2. 在 IE6 盛行几年间, 很多公司为了节约成本, 开发的应用系统只支持 IE6. 令人称奇的是现在还有很多企业继续生产这样的产品. 系统都做出来了, 现在去兼容吧, 不好意思, 合同没写, 加钱也未必做得到. 推倒重做吧, 不可能! 行, 那公司的所有电脑都必须使用 IE6.
3. 如果你有留意浏览器的市场占有率, 你会发现 IE 各版本的占有率和 Windows 的占有率成正比, 也就是说, 使用 Windows 系统的用户大部分都没有升级或者更换操作系统默认浏览器. Vista 的失败令 Windows XP 和 IE6 有更多的生存空间.
4. 还有一些顽固分子, 可能看着其他浏览器不顺眼或者觉得用旧东西比较酷 (我的某个朋友就经常吹捧他对 Windows 95 的熟悉).
5. 网页设计师和开发工程师, 他们是最大的受害者, 是最想摆脱 IE6 但又不能甩手放弃的.
IE6 为何该死?IE6 是网页开发人员的噩梦. 他们必须花很多时间和精力去照顾这个老家伙, 所以这帮人很想整死 IE6. 从开发的角度来看, IE6 很该死的.
1. PNG 是一种支持半透明通道的图片, 可以方便的用于设计网页, 制作叠层和其他复杂的页面效果, 但是 IE6 不支持. 用滤镜强行应付会导致浏览器占用超高资源, 并且得不到预想效果.
2. IE6 有自己一套标准的 CSS 样式, 必须写更多的代码去照顾它. (个人认为 IE7 在这方面比 IE6 更糟糕)
3. JavaScript 与 W3C 出入巨大, 连 DOM (Document Object Model) 都不一致, 调用资源的代码也与 W3C 有很大的出入, 程序员被迫在本来就很松散和复杂的 JS 代码上追加很多判断语句.
4. IE6 对于页面控件的处理与众不同, 令人很头痛. 如: select element 的优先度很高会遮挡页面上 DIV 块, 必须 hack. radio 按钮和 checkbox 按钮的样式也无法定义, 很难统一页面风格.
另外, IE6 的安全性, 性能, 功能明显地已经满足不了现在的网络需求. 过两年, 能不能用来上 "饭否" 都难说. 更换浏览器是大势所趋.
加速 IE6 的灭亡HTML5 筹备已久, Windows 7 呼之欲出, 这是一个消灭 IE6 的好机会. 很多网站纷纷向用户发送更新提示, 希望用户可以升级或者更换浏览器. 还有些网站已经完全不支持 IE6, 要求其访客更换浏览器.
前几天看到一篇文章, 题目好像是 "前端开发人员能支持 IE6 比较牛, 还是拒绝支持 IE6 的比较牛?" 前者认为用户需要尊重, 后者认为兼容是延缓 IE6 灭亡的主要原因. 不管你如何认为, 哪个更牛并无关要, 重要的是尽己所能把 IE6 推下悬崖.
什么?! 你还用 IE6? 换了吧! 我已经将本站使用的提示框做成了一个 Widget, 你可以简单地在 </body> 上添加以下代码将它添加到你的网页上.
<!--[if IE 6]>
<script src="http://letskillie6.googlecode.com/svn/trunk/letskillie6.zh_CN.pack.js"></script>
<![endif]-->
关于 Let's kill IE6 控件更详细的信息请查看以下页面:
http://www.neoease.com/lets-kill-ie6/
另外我也使用Jquery写了一个IE8以下必死的Js函数,请大家批评指正,代码如下:
$(function(){
try{if(isIE){
var X,V;V=navigator.appVersion;X=parseFloat(V.substring(V.indexOf("MSIE")+5,V.lastIndexOf("Windows")));
if(X<8){
w=screen.width/2-220;
warncss='<style type="text/css">html,body{overflow:hidden;}#warn{500%;height:500%;background-color:#000;position:absolute;z-index:99999;filter:Alpha(opacity=90);-moz-opacity:.9;opacity:0.9;}';
warncss+='#warn p{border:5px solid red;line-height:30px;450px;margin:150px 0 0 '+w+'px;font-size:13px;background-color:#fff;padding:15px;}#warn a{font-size:13px;text-decoration:underline;}</style>';
$("body").prepend(''+warncss+'<div id="warn"><p><span style="color:red;font-weight:bold;font-size:14px;">對不起:</span><br>您所使用的瀏覽器版本太低了,它無法滿足本網站的需求.<br>請 <a href="http://www.microsoft.com/windows/internet-explorer/" target="_blank">更新至IE8</a> 或下載使用 <a href="http://www.mozilla.com/" target="_blank">Firefox</a> <a href="http://www.opera.com/" target="_blank">Opera</a> <a href="http://www.google.com/chrome/" target="_blank">Chrome</a> 等瀏覽器進行訪問!</p></div>');}}
}catch(e){}
})(jQuery)
如果大家感觉上边的js代码不够狠辣,可以把
$("body").prepend
直接用
$("body").html
替代.