我想确定broswer是否是IE,然后转到if,其他浏览器在Java脚本中阻塞。 我这里有一个代码,
var browserName=navigator.appName;
if(browserName == "Microsoft Internet Explorer"){
IE code
}
else{
Other code
}
但我想知道有没有其他方法可以实现它?
答案 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版本(对此不肯定)。