如何在 JavaScript 中检测浏览器的布局引擎?
How to detect a browser's layout engine in JavaScript?
我想根据客户端浏览器的 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)"
我想根据客户端浏览器的 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)"