javascript - 如何在 JavaScript 中检测浏览器的布局引擎?

标签 javascript browser detection layout-engine

我想根据 layout engine 创建不同的行为客户端浏览器的。如何检测它是否是 WebKit(Chrome、Safari、Yandex、Midori)、Gecko(Firefox、K-Meleon、Netscape)、Trident(IE)或其他?

最佳答案

查看navigator.userAgent(只需在浏览器的控制台中输入即可)。您可以按如下方式搜索(不区分大小写):

if(navigator.userAgent.search(/trident/i)>0){
    //Internet Explorer
} else if(navigator.userAgent.search(/webkit/i)>0){
    //Chrome, Safari
} else if(navigator.userAgent.search(/???/i)>0){ //replace ??? by the appropriate engine
    //others
} else if(navigator.userAgent.search(/gecko/i)>0){
    //Firefox
}

Gecko留给最后一个条件,因为userAgent属性可能包含表达式“like Gecko”,WebKit浏览器和IE也是如此:

IE's navigator.userAgent: "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.3; rv:11.0) like Gecko"

navigator.appVersion 属性可能包含与 navigator.userAgent 相同的信息,但在某些浏览器中并非如此:

Firefox's navigator.appVersion: "5.0 (Windows)"

关于javascript - 如何在 JavaScript 中检测浏览器的布局引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32617798/

相关文章:

detection - 如何检测语言

c# - 检测另一幅图像中带有一些噪声的图像的算法

javascript - 获取函数调用者名称时遇到问题(arguments.callee.caller 不工作)

javascript - 页面重新加载后在url中添加 anchor 并在JS中显示隐藏部分

javascript - 阻止来自潜在可信来源的混合内容 (127.0.0.0/8)

javascript - 更新查询字符串(无重定向),无需 HTML 5

c# - 使用 51degrees.mobi 进行平板电脑与手机检测

javascript - 加载更多数据 - ScrollTop 功能不起作用

javascript - 在另一个对象中创建一个对象的副本。脚本语言

c# - IE9 WebBrowser 控件是否支持 IE9 的所有功能,包括 SVG?