2011-04-15 116 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版本(不是正面的)。