@cxy227/browser-detection
Version:
2 lines (1 loc) • 7.8 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).browserDetection=n()}(this,function(){"use strict";function n(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function t(e,n){for(var o=0;o<n.length;o++){var t=n[o];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function o(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}function a(e,n,o){var t=document.createElement("div");return t.innerHTML=e,Object.keys(o).forEach(function(e){"class"===e?t.classList.add(o[e]):t[e]=o[e]}),n?n.appendChild(t):document.body&&document.body.appendChild(t),t}var e="undefined"!=typeof window;window.matchMedia("(prefers-color-scheme: dark)").matches;var i=function(){function e(){n(this,e),this.init()}return o(e,[{key:"init",value:function(){var n,o,e=(r=d=null,n={class:"browser-detection-mask"},(o=document.createElement("button")).innerHTML=d,Object.keys(n).forEach(function(e){"class"===e?o.classList.add(n[e]):o[e]=n[e]}),r?r.appendChild(o):document.body&&document.body.appendChild(o),o),t=a(null,null,{class:"browser-detection-box"});a("⚠️ 系统检测",t,{class:"browser-detection-header"});var i=a("您当前的 Chrome 版本浏览器版本过低,请安装新版浏览器。",t,{class:"browser-detection-content"}),s=a(null,t,{class:"browser-detection-footer"});a('<div style="display: inline-block;"><a href="https://www.microsoft.com/zh-cn/edge" target="_blank">下载最新版Edge浏览器</a><img src="https://static.uskid.com/web/garden/kv1u1i28_nDrUEUrFQ6bAFcecbLyNLwdJ.png" alt="" /></div>',s,{class:"browser-detection-download-edge"});var r,d=a('<a href="javascript:;">下次再说</a>',s,{class:"browser-detection-close"});r="\n .browser-detection-mask {\n display: none;\n content: '';\n position: fixed;\n z-index: 99998;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background: rgba(0, 0, 0, 0.3);\n margin: 0;\n border: 0;\n border-radius: inherit;\n }\n .browser-detection-box {\n display: none;\n position: fixed;\n z-index: 99999;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 500px;\n height: auto;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 6px;\n box-shadow: 0 0 10px 6px rgba(0, 0, 0, 0.1);\n color: #000;\n }\n .browser-detection-box-show {\n display: block;\n }\n .browser-detection-header {\n height: 48px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n padding: 0 12px;\n line-height: 48px;\n font-size: 14px;\n }\n .browser-detection-content {\n padding: 32px 24px;\n height: 120px;\n box-sizing: border-box;\n font-size: 14px;\n }\n .browser-detection-footer {\n padding-bottom: 32px;\n }\n\n .browser-detection-close,\n .browser-detection-download-edge {\n margin: 0 auto;\n height: 32px;\n background: #295ef5;\n border: 2px solid #1e53e8;\n text-align: center;\n line-height: 32px;\n width: 220px;\n border-radius: 6px;\n padding: 0 14px;\n margin-bottom: 12px;\n }\n\n .browser-detection-close {\n background: #f5f5f5;\n color: #295ef5;\n border: 0;\n }\n\n .browser-detection-download-edge div:after {\n content: '';\n clear: both;\n }\n\n .browser-detection-download-edge a {\n display: inline-block;\n float: left;\n color: #fff;\n font-size: 16px;\n }\n\n .browser-detection-download-edge img {\n display: inline-block;\n float: left;\n width: 17px;\n margin-left: 7px;\n margin-top: 7px;\n }\n\n .browser-detection-close a {\n color: #295ef5;\n display: inline-block;\n width: 100%;\n font-size: 16px;\n }\n",(s=document.createElement("link")).setAttribute("rel","stylesheet"),s.setAttribute("type","text/css"),s.setAttribute("href","data:text/css;charset=UTF-8,"+encodeURIComponent(r)),document.head.appendChild(s),this.boxMask=e,this.box=t,this.main=i,this.next=d}},{key:"show",value:function(e){var n=this;this.boxMask.classList.add("browser-detection-box-show"),this.box.classList.add("browser-detection-box-show"),e&&(this.main.innerHTML="".concat(e)),this.next.onclick=function(){n.hide()}}},{key:"hide",value:function(){this.boxMask.classList.remove("browser-detection-box-show"),this.box.classList.remove("browser-detection-box-show")}}]),e}(),s=[{system:"Windows 10",regx:/(Windows 10.0|Windows NT 10.0)/},{system:"Windows 8.1",regx:/(Windows 8.1|Windows NT 6.3)/},{system:"Windows 8",regx:/(Windows 8|Windows NT 6.2)/},{system:"Windows 7",regx:/(Windows 7|Windows NT 6.1)/},{system:"Windows Vista",regx:/Windows NT 6.0/},{system:"Windows Server 2003",regx:/Windows NT 5.2/},{system:"Windows XP",regx:/(Windows NT 5.1|Windows XP)/},{system:"Windows 2000",regx:/(Windows NT 5.0|Windows 2000)/},{system:"Windows ME",regx:/(Win 9x 4.90|Windows ME)/},{system:"Windows 98",regx:/(Windows 98|Win98)/},{system:"Windows 95",regx:/(Windows 95|Win95|Windows_95)/},{system:"Windows NT 4.0",regx:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{system:"Windows CE",regx:/Windows CE/},{system:"Windows 3.11",regx:/Win16/},{system:"Android",regx:/Android/},{system:"Open BSD",regx:/OpenBSD/},{system:"Sun OS",regx:/SunOS/},{system:"Linux",regx:/(Linux|X11)/},{system:"iOS",regx:/(iPhone|iPad|iPod)/},{system:"Mac OS X",regx:/Mac OS X/},{system:"Mac OS",regx:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{system:"QNX",regx:/QNX/},{system:"UNIX",regx:/UNIX/},{system:"BeOS",regx:/BeOS/},{system:"OS/2",regx:/OS\/2/},{system:"Search Bot",regx:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}],r=function(){function e(){n(this,e),this.info=function(e){var n=null,o=e||navigator.userAgent,t=o.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[],e="";console.log("agentArr: ",t),"Chrome"===t[1]?(e="chrome",n=o.match(/(OPR(?=\/))\/?(\d+)/i),console.log(n),null!==n&&(t[2]=n[1])):"Safari"===t[1]?(e="safari",null!==(n=o.match(/version\/(\d+)/i))&&(t[2]=n[1])):~o.toLowerCase().indexOf("qqbrowser")?(e="qqbrowser",null!==(n=o.match(/(qqbrowser(?=\/))\/?(\d+)/i))&&(t[2]=n[1])):~o.toLowerCase().indexOf("micromessenger")?(e="weixin",null!==(n=o.match(/(micromessenger(?=\/))\/?(\d+)/i))&&(t[1]="WeiXin",t[2]=n[1])):~o.toLowerCase().indexOf("edge")?(e="edge",null!==(n=o.match(/(edge(?=\/))\/?(\d+)/i))&&(t[2]=n[1])):~o.toLowerCase().indexOf("trident")&&(e="ie",t=[null,"IE",(n=/\brv[ :]+(\d+)/g.exec(o)||[])[1]]);var i=[];return s.forEach(function(e){var n;e.regx.test(o)&&(n=o.indexOf(e.system),~o.toLowerCase().indexOf("xiaomi")?i.length||(i=[e.system,n]):(!i.length||i.length&&n<i[1])&&(i=[e.system,n]))}),/Android|iOS/.test(i[0])?~o.toLowerCase().indexOf("xiaomi")?(e="xiaomi",n=o.match(/(XiaoMi\/MiuiBrowser(?=\/))\/?(\d+)/i),t[1]="XiaoMi/MiuiBrowser",t[2]=n[2]):~o.toLowerCase().indexOf("dingtalk")&&(e="dingding",n=o.match(/(com.laiwang.DingTalk(?=\/))\/?(\d+)/i),t[1]="DingTalk",t[2]=n[2]):/Android/.test(o)&&~o.toLowerCase().indexOf("micromessenger")&&(e="weixin",n=o.match(/(micromessenger(?=\/))\/?(\d+)/i),t[1]="WeiXin",t[2]=n[1],i[0]="Android"),{name:t[1],version:t[2],os:i[0],brand:e,userAgent:navigator.userAgent}}(),this.dialog=new i}return o(e,[{key:"check",value:function(){var e=this.info,n=this.dialog;(e&&"Chrome"!==e.name||Number(e&&e.version)<80)&&n.show("当前浏览器与教室不匹配,请更换<br />推荐使用微软官方的Edge浏览器。")}}]),e}();return e&&window.addEventListener("load",function(){var e=null;try{var n=document.getElementById("drowserDetection"),e=new r;n&&"auto"===n.getAttribute("data-check")&&e.check()}catch(e){console.log("bd-err: ",e)}}),r});