2013-11-29 31 views
1

我正在使用JavaScripts lastIndexOf(),它不能在IE中工作,所以我必須編寫一個替代代碼。如何簡單地使用JQuery或JavaScript檢測瀏覽器類型?

我只是想要一個if語句做這樣的事情:

if(IE = true){ 
    //run alternative to lastIndexOf() 
} 

但我真的找到一種方法來實現這一奮鬥。

到目前爲止,我已經試過如下:

JQuery的.browser已被棄用。

.support似乎只檢測瀏覽器的某些方面或功能。

用JavaScript修改.support,因爲here,不會工作, 會拋出錯誤。

hasClass()方法不再起作用:

<!--[if lt IE 7]>  <html class="ie6"> <![endif]--> 
<!--[if IE 7]>   <html class="ie7"> <![endif]--> 
<!--[if IE 8]>   <html class="ie8"> <![endif]--> 
<!--[if gt IE 8]><!--> <html>   <!--<![endif]--> 
if ($('html').hasClass('ie7'); 

會有人知道一個簡單的方法,只是檢測瀏覽器類型?

+0

我找不到'lastIndexOf'的任何jQuery文檔。你可能意思是['String.lastIndexOf'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf)或['Array.prototype.lastIndexOf'](https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf) – Phil

+0

@Phil對不起,我認爲它只是一個JavaScript的東西 – MeltingDog

回答

-2

編輯:解決您的問題的最佳方法是由MDN給出。


How can you detect the version of a browser?將瀏覽器類型和版本作爲字符串獲得的方法非常好。

您可能還會發現Detect IE version (prior to v9) in JavaScript對IE特定檢測有幫助。

你還可以嘗試:

if (navigator.userAgent.indexOf("MSIE") > 0) 

我還沒有測試但此。

+0

我正在尋找來源,可以' t找到它 – JDong

+1

http://stackoverflow.com/a/5918791/80860 – kennebec

+0

謝謝,也發現它自己。 – JDong

4

有些情況下,您別無選擇,只能使用瀏覽器檢測,但在這種情況下,如果您檢測到該功能本身,並且shim it in if it is not there會更好。

+1

我總是在[兼容性](https://開發人員)下檢查MDN墊片/ polyfills。mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf#Compatibility) – Phil

+0

@Phil:非常好的一點。 – Amadan

+0

是啊,不瀏覽器嗅探,功能檢測。 FWIW IE支持lastIndexOf,這裏是我的控制檯做一個快速示例的副本。 –