上午的时候,本来是想做一个position:fixed在各个浏览器下兼容的方案的,但是发现ie7/8下面的position:fixed只支持一个屏幕,如果内容高度超过一个屏幕就不能很好的使用position:fixed了(如果哪个同学有position:fixed的完美方案麻烦给我一下),于是我想用js来兼容,其实就是通过scroll监听来实现,于是需要判断ie7/8这俩版本,但是发现jquery的$.browser.version并不支持ie8,于是我就百度,百度倒是给出很多答案,但是发现ie8还是没能检测出来,后来我自己查看了navigator.userAgent这个东西,在各个浏览器下面打出来是这个样子的:
|
你就发现,ie8和ie9是一样的,这下子蒙了,看来光靠这个navigator.userAgent是不够了,但是我相信你也很快就知道怎么做了,因为i9还是一个比较先进的浏览器,拥有一些ie8没有的属性,我不一一罗列了,其中一个就是window.innerWidth,这个属性值是浏览器的内高度(不包括工具栏和滚动条,还是一个比较有用的属性)。ie8下面这个属性值是undefined,9下面就ok了,显示的是一个数字。于是判断浏览器版本就很自然了,看下面这个方案:
if(navigator.userAgent.indexOf("MSIE")>0){ if(navigator.userAgent.indexOf("MSIE 6.0")>0){ alert("ie6"); } if(navigator.userAgent.indexOf("MSIE 7.0")>0){ alert("ie7"); } if(navigator.userAgent.indexOf("MSIE 9.0")>0 && !window.innerWidth){//这里是重点,你懂的 alert("ie8"); } if(navigator.userAgent.indexOf("MSIE 9.0")>0){ alert("ie9"); } }