浏览器识别
browser identification
我想确定浏览器是否为IE然后转到if块,其他浏览器转到Java脚本中的else块。这里有一个代码
var browserName=navigator.appName;
if(browserName == "Microsoft Internet Explorer"){
IE code
}
else{
Other code
}
但是我想知道有没有其他实现它的方法?
不应该做浏览器嗅探,而应该做特性检测。新版本的IE可能支持与标准兼容的东西,而在旧版本中你需要绕过这些东西或使用ms特有的东西。
微软自己也写了一篇关于最好的方法的文章,并提供了坏代码(通过嗅探)和好代码(通过检测)的例子。
我刚开始使用这个脚本来识别浏览器、版本和操作系统:
http://www.quirksmode.org/js/detect.html如果您需要根据浏览器对某些对象或方法的支持使用不同的代码,通常使用对象或方法检测而不是浏览器检测更好。我使用浏览器检测来收集用户的统计信息,而不是启用或禁用功能。
Quirksmode有一篇关于为什么不这样使用浏览器检测的短文:http://www.quirksmode.org/js/support.html它也链接自浏览器检测脚本
我发现这个任务相当困难,因为浏览器都有相似的名称和不同的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版本(对此不确定)
相关文章:
- 如何识别“;输入“;没有浏览器检测的事件
- 在 JavaScript 中识别浏览器选项卡的任何方法
- Chrome 以外的浏览器中的语音识别
- jQuery无法识别类的变化,尽管浏览器确实如此
- 如何识别浏览器
- 如何识别当前打开的每个单独的浏览器窗口
- Java 应用程序如何识别特定的浏览器
- 如何使浏览器识别用户的分辨率
- 火狐浏览器无法识别table.cells吗?
- 在浏览器中打开时,如何识别文件的独特之处
- 识别浏览器 HTML5 功能的推荐方法
- 在浏览器中识别完整的图像绘制
- jQuery.is(“:焦点”)不;在IE以外的浏览器中,无法识别焦点在复选框上
- JavaScript中有没有一种方法可以识别浏览器何时加载页面
- ReactJS:如何识别浏览器选项卡是否已关闭
- Javascript识别浏览器平台是桌面还是移动平台(可能是/不是来自设备宽度-高度)
- 让AngularJS识别浏览器已经检测到的无效输入的推荐解决方案
- 如何识别浏览器元素[XUL/firefox]的选项卡关闭事件
- Bootstrap框架如何识别浏览器和设备宽度
- Javascript - 只需识别浏览器连接的网络即可