浏览器识别

时间:2011-04-15 11:55:43

标签: javascript

我想确定broswer是否是IE,然后转到if,其他浏览器在Java脚本中阻塞。 我这里有一个代码,

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

但我想知道有没有其他方法可以实现它?

3 个答案:

答案 0 :(得分:2)

您应该进行功能检测,而不是进行浏览器嗅探。 IE的更高版本可能支持符合标准的内容,在旧版本中,您需要解决这些问题或使用特定于MS的内容。

微软自己有written up about the best way这样做,并提供坏代码(通过嗅探)和良好代码(通过检测)的示例。确保你遵循“良好代码”路线。

答案 1 :(得分:0)

我刚开始使用此脚本来识别浏览器,版本和操作系统:

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

如果您需要根据浏览器对某些对象或方法的支持使用不同的代码,通常最好使用对象或方法检测而不是浏览器检测。我使用浏览器检测来收集用户的统计信息,而不是启用或禁用功能。

Quirksmode有一篇简短的文章,说明为什么不以这种方式使用浏览器检测:http://www.quirksmode.org/js/support.html它也是从浏览器检测脚本链接的。

答案 2 :(得分: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版本(对此不肯定)。