最近在做 Angularjs + SpringBoot的项目; 通过反馈发现有部分用户习惯使用360浏览器; 因此通过对360浏览器深入了解发现其有两种模式:兼容模式(IE内核)和极速模式(chrome内核); 根据需求当用户使用360兼容模式登录时,系统将提示切换至极速模式(虽然这不是什么好的解决方案,但别无选择); 方案想着很简单,但当实现的时候emmmmmmm...第一步就遇到很大的问题! 首先得用js检测用户使用的哪个浏览器: 通过 let ua = navigator.userAgent.toLocaleLowerCase(); ua.match(/.../); 即可检测出 firefox,chrome,safari,ubrowser,tencenttraveler... 常见的浏览器UA; 但是 唯独 360浏览器没有办法检测; 网上查阅了很多资料都没有最佳的办法 /* 说是之前可以用 UA 来检测,但在 360 浏览器争议声较大的那段时间内,很多站长都屏蔽了 360 浏览器的 UA,然后 360 浏览器为了用户体验更新版本,伪装成 IE 或者 Chrome 浏览器,所以现在都检测不出来了 */ 因此最终的办法就是: 1.判断极速模式: function _mime(option, value) { var mimeTypes = navigator.mimeTypes; for (var mt in mimeTypes) { if (mimeTypes[mt][option] === value) { return true; } } return false; } _mime("type", "application/vnd.chromium.remoting-viewer"); 2.判断兼容模式 === 判断IE ua.match(/msie/) != null || ua.match(/trident/) != null
###### 大佬还有更好的办法吗?