jquery1.9 下檢測瀏覽器型別和版本

NO IMAGE

今天的專案要自定義下拉框的樣式,引入了外掛,結果出現了火狐相容問題,想死的說,之前一直不知道是火狐的問題,總想著可能是自己的樣式寫錯了,查了老半天,米錯啊啊啊,而且谷歌是正常的,查了以往有用到這個的專案,發現也有這個問題,坑人吶~人家出現了這問題,沒事,因為人家並沒有破壞整體的視覺效果,我這裡就不行了,因用了div去模擬下拉框。

問題:使用placeholder顯示input輸入框的描述,改變placeholder文字的樣式,字型顏色為白色,在谷歌下能正常顯示,火狐就不行了,火狐的顯示是淺灰色,後來上網查了下,說谷歌跟火狐定義方式不同,要用這兩句:

::-webkit-input-placeholder { color:#fff; }
input:-moz-placeholder { color:#fff;  }

表示我也用了,沒用吖,看不出效果,而且用審查元素也看不出,乾脆再加個樣式,把字型全部弄成大寫的,結果還真全是大寫了,說明樣式應用上了,呼~這回真不知哪裡問題了~經過百般糾結加折騰,才知道原來火狐下就這樣顯示,以往的專案也是這樣,顯示成淺灰色的,但我這裡一個div是正常顯示成白色,另外三個input則顯示為灰色,設計稿是白色,谷歌也正常顯示,所以我要正對火狐,把div裡文字的顏色改成淺灰色,但又不能影響谷歌,查了下火狐谷歌的hack,我想說,他倆根本就像一體的,沒什麼關於他倆的hack,無奈用瀏覽器檢測,$.browser,報錯了。。。原來這次用的是jquery1.9版本的,而這個方法已經被剔除,只能找其他方法了,試過好多方法都沒用,只有下面這個是可行的

判斷瀏覽器型別:
$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());
$.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase());
$.browser.opera = /opera/.test(navigator.userAgent.toLowerCase());
$.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());
等號後面的表示式返回的就是 true/false, 可以直接用來替換原來的 $.browser.msie 等。

檢查是否為 IE6:
// Old
if ($.browser.msie && 7 > $.browser.version) {}
// New
if (‘undefined’ == typeof(document.body.style.maxHeight)) {}

檢查是否為 IE 6-8:
if (!$.support.leadingWhitespace) {}