window.navigator.uerAgent只读属性返回当前浏览器的用户代理字符串。基于用户代理字符串来识别浏览器是不可靠的且不推荐,因为用户代理字符串是可以由用户配置的。规范要求浏览器尽可能减少通过此字段提供的信息。
// 是否是IE浏览器
export function isIE(){
const browser = window.navigator.userAgent;
if(
browser.indexOf('MSIE') > 0 ||
browser.indexOf('msie') > 0 ||
browser.indexOf('Trident') >0 ||
browser.indexOf('trident') > 0 ||
browser.indexOf('Edge') > 0
){
return true;
}
return false;
}
Navigator:userAgent 属性 - Web API | MDN
提示:新版浏览器和旧版的浏览器开始使用相同的 UA 或部分 UA,因此你无法完全保证浏览器代理确实是此属性所宣告的浏览器代理。此外,请注意浏览器用户可以根据需要更改此字段的值(UA 欺骗)。所以不同的浏览器提供不同的页面或者服务通常不是一个好主意。
总结
不同的浏览器提供不同的页面或者服务通常不是一个好主意。但是实际的开发中,可能确实是会碰到这样的情况,比如我现在做的项目,e盾是不兼容的,所以IE浏览器调用的e盾和其他非IE的不同。