![](https://img.haomeiwen.com/i13429147/22734b344a30ea66.jpg)
后端其实可以通过request 获取自行判断
但是万一后端大佬偷懒不乐意 || 各种原因要你自己实现呢
360浏览器坑人没商量
以下代码 detectos 是测试操作系统的 也可检测win8-win10了
detectbw检测浏览器类型
并非100% 自己的几个版本浏览器测试了没问题 有问题大家可以提出了 一起学习解决
function detectOS() {
var sUserAgent = navigator.userAgent;
var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
if (isMac) return "Mac";
var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
if (isUnix) return "Unix";
var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
if (isLinux) return "Linux";
if (isWin) {
var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
if (isWin2K) return "Win2000";
var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
if (isWinXP) return "WinXP";
var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
if (isWin2003) return "Win2003";
var isWinVista = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
if (isWinVista) return "WinVista";
var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
if (isWin7) return "Win7";
var isWin8 = sUserAgent.indexOf("Windows NT 6.2") > -1 || sUserAgent.indexOf("Windows 8") > -1;
if (isWin8) return "Win8";
var isWin81 = sUserAgent.indexOf("Windows NT 6.3") > -1 || sUserAgent.indexOf("Windows 81") > -1;
if (isWin81) return "Win8.1";
var isWin10 = sUserAgent.indexOf("Windows NT 10.0") > -1 || sUserAgent.indexOf("Windows 10") > -1;
if (isWin10) return "Win10";
}
return "other";
}
console.log("您的操作系统是:" + detectOS());
function detectbw() {
/**
* 由于360浏览器只能在打开360的网站的情况下才能在navigator.userAgent截取到360se的字段
* 偶然间发现一个可以判断是360浏览器的mimeType(媒体类型),type: "application/vnd.chromium.remoting-viewer"
* @gecko 由于已经判断过是否是firefox浏览器了 所以如果还有gecko字段 默认是360浏览器(因为在360浏览器兼容模式下 会有gecko字段 应该是换内核了)
*/
var UserAgent = navigator.userAgent.toLowerCase();
if (/ucweb/.test(UserAgent)) return "UC浏览器";
if (/chrome/.test(UserAgent.substr(-33, 6))) return "Chrome浏览器";
if (/firefox/.test(UserAgent)) return "FireFox浏览器";
if (/opera/.test(UserAgent)) return "Opera浏览器";
if (/safari/.test(UserAgent) && !/chrome/.test(UserAgent)) return "Safari浏览器";
if ((/chrome/.test(UserAgent) && _mime("type", "application/vnd.chromium.remoting-viewer")) || /gecko/.test(UserAgent)) return "360浏览器";
if (/bidubrowser/.test(UserAgent)) return "百度浏览器";
if (/metasr/.test(UserAgent)) return "搜狗浏览器";
if (/msie 6.0/.test(UserAgent)) return "IE6";
if (/msie 7.0/.test(UserAgent)) return "IE7";
if (/msie 8.0/.test(UserAgent)) return "IE8";
if (/msie 9.0/.test(UserAgent)) return "IE9";
if (/msie 10.0/.test(UserAgent)) return "IE10";
if (/msie 11.0/.test(UserAgent)) return "IE11";
if (/lbbrowser/.test(UserAgent)) return "猎豹浏览器";
if (/micromessenger/.test(UserAgent)) return "微信内置浏览器";
if (/qqbrowser/.test(UserAgent)) return "QQ浏览器";
if (UserAgent.indexOf("edge") > -1) return "Edge浏览器"
return "other"
}
console.log("您的浏览器是:" + detectbw())
//测试mime
function _mime(option, value) {
var mimeTypes = navigator.mimeTypes;
for (var mt in mimeTypes) {
if (mimeTypes[mt][option] == value) {
return true;
}
}
return false;
}
喜欢的点个赞吧
![](https://img.haomeiwen.com/i13429147/ef376f047b4ed703.gif)
网友评论