忽如一夜春风来,我还在用 jQuery 1.8.1 的时候,无意中发现 jQuery 1.9.0 正式版已出。
于是乎惯例性的对 ShadowBlue 和本主题内置的脚本进行了升级。我这一换不要紧,差点成残疾,原来 1.9.0 中把 $.browser 取消了,全面改成了 $.support,也许 jQuery 的开发者认为通过特征来区分浏览器比通过浏览器版本来区分更加地有效,不过很多时候我们依然需要知道浏览器到底是啥版本。以前,通过 $.browser 我可以很容易地知道现在跑在什么浏览器上,并写成了一个方便的方法:
1 2 3 4 5 6 7 |
var ieVersion = function(){ var ver = 100, $ = jQuery; if ($.browser.msie) { ver = parseInt($.browser.version); } return ver; }; |
于是当我调用这个方法就可以知道目前到底是 IE 几(如果不是 IE 则为 100),现在不行了,于是只有使用非 jQuery 内置方法来判断:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var ieVersion = function(){ var ver = 100, ie = (function(){ var undef, v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i'); while ( div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', all[0] ); return v > 4 ? v : undef; }()); if(ie) ver = ie; return ver; } |
亲测 IE6-9 都可以正确识别,IE10 识别为非 IE 了,不过这样也无伤大雅。