2011-04-15 164 views
0

我想確定是否瀏覽器是IE,然後轉到如果阻止,其他瀏覽器要在Java腳本中阻塞。 我這裏有一個代碼,瀏覽器識別

var browserName=navigator.appName; 
if(browserName == "Microsoft Internet Explorer"){ 
    IE code 
} 
else{ 
    Other code 
} 

,但我想知道有沒有實現它的任何其他方式?

+2

有條件的評論嗎? – 2011-04-15 11:56:57

+0

您可以使用此方法識別IE:http://ajaxian.com/archives/attack-of-the-ie-conditional-comment – 2011-04-15 11:58:56

+0

如果您使用jquery:http://api.jquery.com/jQuery.browser /(但已棄用) – Willem 2011-04-15 11:59:10

回答

2

而不是做瀏覽器嗅探,你應該做功能檢測。 IE的後續版本可能支持符合標準的東西,在舊版本中需要解決或使用MS特定的東西。

微軟自己有written up about the best way這樣做,並提供壞代碼(通過嗅探)和良好的代碼(通過檢測)的例子。確保你遵循「良好的代碼」路線。

0

我剛開始使用該腳本識別瀏覽器,版本和操作系統:

http://www.quirksmode.org/js/detect.html

如果您需要基於對特定的對象和方法的瀏覽器支持使用不同的代碼,它通常最好使用對象或方法檢測代替瀏覽器檢測。我使用瀏覽器檢測來收集用戶的統計信息,而不是啓用或禁用功能。

Quirksmode有一篇關於爲什麼不用這種方式使用瀏覽器檢測的簡短文章:http://www.quirksmode.org/js/support.html它也從瀏覽器檢測腳本鏈接。

0

我發現這個任務非常困難,因爲瀏覽器都有類似的名稱和不同的userAgent字符串,所以這是我的條件語句來識別瀏覽器。

我用它來識別不同樣式表的瀏覽器。

function styc() 
{ 
var str = navigator.userAgent; 
var res = navigator.userAgent.match(/Trident/); 
var res2 = navigator.userAgent.match(/Firefox/); 
if(res=="Trident"||res2=="Firefox") 
{ 
//alert(navigator.userAgent);//for testing 
document.getElementById('IE_fix').setAttribute("href", "IE_fix.css"); 
} 
else 
{ 
//alert("no");//for testing 
document.getElementById('IE_fix').setAttribute("href", "mt_default.css"); 
} 
} 

在userAgent字符串中找到一個唯一的詞匹配它,並根據您正在做的事情檢查條件是否爲真。

我在IE中找到的唯一字是Trident,並且根據MicroSoft標識IE版本(不是正面的)。