今天学了BOM编程中的navigator
,用来判断浏览器类型时发现一些问题。
let ua = navigator.userAgent;
// 判断浏览器
if(/firefox/i.test(ua)){
alert('firefox');
}else if(/chrome/i.test(ua)){
alert('chrome');
}else if(/edge/i.test(ua)){
alert('edge');
}else if("ActiveXObject" in window){
alert('ie');
}else{
alert('unknown');
}
-
用以上代码判断edge浏览器,结果提示是Chrome。
-
查看edge和Chrome的userAgent
let ua = navigator.userAgent;
console.log(ua);
- 结果发现两个浏览器中都含有Chrome,edge中只有Edg
edge:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188
Chrome:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
- 将修改edge和Chrome的正则表达式
let ua = navigator.userAgent;
// 判断浏览器
if(/firefox/i.test(ua)){
alert('firefox');
}else if(/chrome[edg]/i.test(ua)){
alert('chrome');
}else if(/edg/i.test(ua)){
alert('edge');
}else if("ActiveXObject" in window){
alert('ie');
}else{
alert('unknown');
}
- 结果可以判断edge了