├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md ├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── babel.config.json ├── dist ├── device.es.js └── device.js ├── package.json ├── rollup.config.js └── src ├── css ├── index.css ├── loading.css ├── scrollbar.css ├── theme_dark.css └── theme_light.css ├── device.js ├── index.html └── index.js /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .DS_Store 3 | node_modules 4 | package-lock.json 5 | yarn.lock 6 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shell-emulator=true 2 | strict-peer-dependencies=false 3 | legacy-peer-deps=true 4 | engine-strict=false 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-present, skillnull 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | DeviceJS 3 |
4 |
5 |
6 | License MIT 7 |
8 | 9 | > #### CDN 10 | 11 | ```html 12 | 使用 UMD 格式 13 | 14 | # or 15 | 16 | 17 | 18 | 使用 ES 格式 19 | 20 | # or 21 | 22 | ``` 23 | 24 | > #### 安装 25 | 26 | ```shell 27 | # NPM or YARN 28 | 29 | yarn add @skillnull/device-js 30 | 31 | # or with npm 32 | 33 | npm install @skillnull/device-js 34 | ``` 35 | 36 | > #### 调用 37 | 38 | ```js 39 | // 使用 CDN 引用时,无需 import 40 | import Device from '@skillnull/device-js' 41 | 42 | /** 43 | * @params:{ 44 | * domain: 生成浏览器指纹所需,不传默认使用window.location.host; 45 | * transferDateToLunar: 要被转化为农历的日期,需要同时开启info中的lunarDate选项才生效 46 | * info: 想要获取的信息,不传默认开启全部信息显示 47 | * } 48 | * 49 | * @return: 返回 Promise 对象 50 | */ 51 | 52 | Device.Info({ 53 | domain: 'your domain', 54 | transferDateToLunar: '需要转化为农历的日期。例如: 2023/01/01。', 55 | info: ['lunarDate'] 56 | }).then(data => { 57 | console.log(data) 58 | }) 59 | 60 | // 或 61 | 62 | Device.Info().then(data => { 63 | console.log(data) 64 | }) 65 | ``` 66 | 67 | > #### INFO 配置项 68 | > - deviceType: 设备类型 69 | > - OS: 操作系统 70 | > - OSVersion: 操作系统版本 71 | > - platform: 操作系统平台 72 | > - screenHeight: 屏幕高 73 | > - screenWidth: 屏幕宽 74 | > - language: 当前使用的语言-国家 75 | > - netWork: 联网类型 76 | > - orientation: 横竖屏 77 | > - browserInfo: 浏览器信息 78 | > - fingerprint: 浏览器指纹 79 | > - userAgent: 包含 appCodeName,appName,appVersion,language,platform 等 80 | > - geoPosition: 地理位置 81 | > - date: 阳历日期时间 82 | > - lunarDate: 阴历日期 83 | > - week: 周几 84 | > - UUID: 通用唯一标识 Universally Unique Identifier 85 | 86 | > #### 在线地址: [https://skillnull.com/others/DeviceJs/index.html](https://skillnull.com/others/DeviceJs/index.html) 87 | 88 | -------------------------------------------------------------------------------- /babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env" 5 | ] 6 | ], 7 | "plugins": [ 8 | [ 9 | "@babel/plugin-transform-runtime" 10 | ] 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /dist/device.es.js: -------------------------------------------------------------------------------- 1 | function n(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var e={exports:{}};!function(n){function e(i){return n.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},n.exports.__esModule=!0,n.exports.default=n.exports,e(i)}n.exports=e,n.exports.__esModule=!0,n.exports.default=n.exports}(e);var i=n(e.exports),o=function(){var n="undefined"!=typeof self?self:this,e=n||{},i={navigator:void 0!==(null==n?void 0:n.navigator)?null==n?void 0:n.navigator:{},infoMap:{engine:["WebKit","Trident","Gecko","Presto"],browser:["Safari","Chrome","Edge","IE","Firefox","Firefox Focus","Chromium","Opera","Vivaldi","Yandex","Arora","Lunascape","QupZilla","Coc Coc","Kindle","Iceweasel","Konqueror","Iceape","SeaMonkey","Epiphany","360","360SE","360EE","UC","QQBrowser","QQ","Baidu","Maxthon","Sogou","LBBROWSER","2345Explorer","TheWorld","XiaoMi","Quark","Qiyu","Wechat",,"WechatWork","Taobao","Alipay","Weibo","Douban","Suning","iQiYi"],os:["Windows","Linux","Mac OS","Android","Ubuntu","FreeBSD","Debian","iOS","Windows Phone","BlackBerry","MeeGo","Symbian","Chrome OS","WebOS","HarmonyOS"],device:["Mobile","Tablet","iPad"]},lunarLib:{lunarMap:[19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42448,83315,21200,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46496,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,21952,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,53856,60005,54576,23200,30371,38608,19415,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448],solarMonthArr:[31,28,31,30,31,30,31,31,30,31,30,31],AnimalsArr:["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],numberToHanzi_1:["日","一","二","三","四","五","六","七","八","九","十"],numberToHanzi_2:["初","十","廿","卅"],chineseMonth:["正","二","三","四","五","六","七","八","九","十","冬","腊"],chineseYear:["零","一","二","三","四","五","六","七","八","九"],monthPlusOne:""}},o={createLoading:function(n,e){var i,o,l=1,r="";e&&(r='
'+l+"s
");var u="";n&&(u='
'+n+"
");var d=null===(i=document)||void 0===i?void 0:i.createElement("div");if(d.id="create_loading",d.style="display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999999999; text-align: center; font-size: 14px; display: flex; flex: 1; justify-content: center; flex-direction: column; align-items: center; background: rgba(0, 0, 0, 0.09);",d.innerHTML=r+'
'+u,null===(o=document)||void 0===o||null===(o=o.body)||void 0===o||o.appendChild(d),e){var a,t=null===(a=document)||void 0===a?void 0:a.getElementById("count_box");setInterval((function(){l++,t&&(t.innerHTML="
"+l+"s
")}),1e3)}},removeLoading:function(){var n,e,i=null===(n=document)||void 0===n?void 0:n.getElementById("create_loading");null===(e=document)||void 0===e||null===(e=e.body)||void 0===e||e.removeChild(i)},createUUID:function(){for(var n=[],e="0123456789abcdef",i=0;i<36;i++)n[i]=e.substr(null===Math||void 0===Math?void 0:Math.floor(16*(null===Math||void 0===Math?void 0:Math.random())),1);return n[14]="4",n[19]=e.substr(3&n[19]|8,1),n[8]=n[13]=n[18]=n[23]="-",null==n?void 0:n.join("")},getDate:function(){var n=new Date,e=null==n?void 0:n.getFullYear(),i=(null==n?void 0:n.getMonth())+1,o=null==n?void 0:n.getDate(),l=null==n?void 0:n.getHours(),r=null==n?void 0:n.getMinutes(),u=null==n?void 0:n.getSeconds();return i=i>9?i:"0"+i,o=o>9?o:"0"+o,l=l>9?l:"0"+l,r=r>9?r:"0"+r,u=u>9?u:"0"+u,"".concat(e,"/").concat(i,"/").concat(o," ").concat(l,":").concat(r,":").concat(u)},getWeek:function(){var n=new Array("周日","周一","周二","周三","周四","周五","周六"),e=new Date;return n[null==e?void 0:e.getDay()]},getMatchMap:function(n){return{Trident:(null==n?void 0:n.indexOf("Trident"))>-1||(null==n?void 0:n.indexOf("NET CLR"))>-1,Presto:(null==n?void 0:n.indexOf("Presto"))>-1,WebKit:(null==n?void 0:n.indexOf("AppleWebKit"))>-1,Gecko:(null==n?void 0:n.indexOf("Gecko/"))>-1,Safari:(null==n?void 0:n.indexOf("Safari"))>-1,Chrome:(null==n?void 0:n.indexOf("Chrome"))>-1||(null==n?void 0:n.indexOf("CriOS"))>-1,IE:(null==n?void 0:n.indexOf("MSIE"))>-1||(null==n?void 0:n.indexOf("Trident"))>-1,Edge:(null==n?void 0:n.indexOf("Edge"))>-1,Firefox:(null==n?void 0:n.indexOf("Firefox"))>-1||(null==n?void 0:n.indexOf("FxiOS"))>-1,"Firefox Focus":(null==n?void 0:n.indexOf("Focus"))>-1,Chromium:(null==n?void 0:n.indexOf("Chromium"))>-1,Opera:(null==n?void 0:n.indexOf("Opera"))>-1||(null==n?void 0:n.indexOf("OPR"))>-1,Vivaldi:(null==n?void 0:n.indexOf("Vivaldi"))>-1,Yandex:(null==n?void 0:n.indexOf("YaBrowser"))>-1,Arora:(null==n?void 0:n.indexOf("Arora"))>-1,Lunascape:(null==n?void 0:n.indexOf("Lunascape"))>-1,QupZilla:(null==n?void 0:n.indexOf("QupZilla"))>-1,"Coc Coc":(null==n?void 0:n.indexOf("coc_coc_browser"))>-1,Kindle:(null==n?void 0:n.indexOf("Kindle"))>-1||(null==n?void 0:n.indexOf("Silk/"))>-1,Iceweasel:(null==n?void 0:n.indexOf("Iceweasel"))>-1,Konqueror:(null==n?void 0:n.indexOf("Konqueror"))>-1,Iceape:(null==n?void 0:n.indexOf("Iceape"))>-1,SeaMonkey:(null==n?void 0:n.indexOf("SeaMonkey"))>-1,Epiphany:(null==n?void 0:n.indexOf("Epiphany"))>-1,360:(null==n?void 0:n.indexOf("QihooBrowser"))>-1||(null==n?void 0:n.indexOf("QHBrowser"))>-1,"360EE":(null==n?void 0:n.indexOf("360EE"))>-1,"360SE":(null==n?void 0:n.indexOf("360SE"))>-1,UC:(null==n?void 0:n.indexOf("UC"))>-1||(null==n?void 0:n.indexOf(" UBrowser"))>-1,QQBrowser:(null==n?void 0:n.indexOf("QQBrowser"))>-1,QQ:(null==n?void 0:n.indexOf("QQ/"))>-1,Baidu:(null==n?void 0:n.indexOf("Baidu"))>-1||(null==n?void 0:n.indexOf("BIDUBrowser"))>-1,Maxthon:(null==n?void 0:n.indexOf("Maxthon"))>-1,Sogou:(null==n?void 0:n.indexOf("MetaSr"))>-1||(null==n?void 0:n.indexOf("Sogou"))>-1,LBBROWSER:(null==n?void 0:n.indexOf("LBBROWSER"))>-1||(null==n?void 0:n.indexOf("LieBaoFast"))>-1,"2345Explorer":(null==n?void 0:n.indexOf("2345Explorer"))>-1,TheWorld:(null==n?void 0:n.indexOf("TheWorld"))>-1,XiaoMi:(null==n?void 0:n.indexOf("MiuiBrowser"))>-1,Quark:(null==n?void 0:n.indexOf("Quark"))>-1,Qiyu:(null==n?void 0:n.indexOf("Qiyu"))>-1,Wechat:(null==n?void 0:n.indexOf("MicroMessenger"))>-1,WechatWork:(null==n?void 0:n.indexOf("wxwork/"))>-1,Taobao:(null==n?void 0:n.indexOf("AliApp(TB"))>-1,Alipay:(null==n?void 0:n.indexOf("AliApp(AP"))>-1,Weibo:(null==n?void 0:n.indexOf("Weibo"))>-1,Douban:(null==n?void 0:n.indexOf("com.douban.frodo"))>-1,Suning:(null==n?void 0:n.indexOf("SNEBUY-APP"))>-1,iQiYi:(null==n?void 0:n.indexOf("IqiyiApp"))>-1,DingTalk:(null==n?void 0:n.indexOf("DingTalk"))>-1,Vivo:(null==n?void 0:n.indexOf("VivoBrowser"))>-1,Huawei:(null==n?void 0:n.indexOf("HuaweiBrowser"))>-1||(null==n?void 0:n.indexOf("HUAWEI/"))>-1||(null==n?void 0:n.indexOf("HONOR"))>-1||(null==n?void 0:n.indexOf("HBPC/"))>-1,Windows:(null==n?void 0:n.indexOf("Windows"))>-1,Linux:(null==n?void 0:n.indexOf("Linux"))>-1||(null==n?void 0:n.indexOf("X11"))>-1,"Mac OS":(null==n?void 0:n.indexOf("Macintosh"))>-1,Android:(null==n?void 0:n.indexOf("Android"))>-1||(null==n?void 0:n.indexOf("Adr"))>-1,Ubuntu:(null==n?void 0:n.indexOf("Ubuntu"))>-1,FreeBSD:(null==n?void 0:n.indexOf("FreeBSD"))>-1,Debian:(null==n?void 0:n.indexOf("Debian"))>-1,"Windows Phone":(null==n?void 0:n.indexOf("IEMobile"))>-1||(null==n?void 0:n.indexOf("Windows Phone"))>-1,BlackBerry:(null==n?void 0:n.indexOf("BlackBerry"))>-1||(null==n?void 0:n.indexOf("RIM"))>-1,MeeGo:(null==n?void 0:n.indexOf("MeeGo"))>-1,Symbian:(null==n?void 0:n.indexOf("Symbian"))>-1,iOS:(null==n?void 0:n.indexOf("like Mac OS X"))>-1,"Chrome OS":(null==n?void 0:n.indexOf("CrOS"))>-1,WebOS:(null==n?void 0:n.indexOf("hpwOS"))>-1,HarmonyOS:(null==n?void 0:n.indexOf("HarmonyOS"))>-1,Mobile:(null==n?void 0:n.indexOf("Mobi"))>-1||(null==n?void 0:n.indexOf("iPh"))>-1||(null==n?void 0:n.indexOf("480"))>-1,Tablet:(null==n?void 0:n.indexOf("Tablet"))>-1||(null==n?void 0:n.indexOf("Nexus 7"))>-1,iPad:(null==n?void 0:n.indexOf("iPad"))>-1}},matchInfoMap:function(n){var e,l=(null==i||null===(e=i.navigator)||void 0===e?void 0:e.userAgent)||{},r=null==o?void 0:o.getMatchMap(l);for(var u in null==i?void 0:i.infoMap)for(var d=0;d<(null==i||null===(a=i.infoMap)||void 0===a||null===(a=a[u])||void 0===a?void 0:a.length);d++){var a,t,v=null==i||null===(t=i.infoMap)||void 0===t||null===(t=t[u])||void 0===t?void 0:t[d];r[v]&&(n[u]=v)}},getOS:function(){return null==o||o.matchInfoMap(this),this.os},getOSVersion:function(){var n,e=this,o=(null==i||null===(n=i.navigator)||void 0===n?void 0:n.userAgent)||{};e.osVersion="";var l,r={Windows:function(){var n=null==o?void 0:o.replace(/^.*Windows NT ([\d.]+);.*$/,"$1");return{10:"10 || 11",6.3:"8.1",6.2:"8",6.1:"7","6.0":"Vista",5.2:"XP 64-Bit",5.1:"XP","5.0":"2000","4.0":"NT 4.0","3.5.1":"NT 3.5.1",3.5:"NT 3.5",3.1:"NT 3.1"}[n]||n},Android:function(){return null==o?void 0:o.replace(/^.*Android ([\d.]+);.*$/,"$1")},iOS:function(){var n;return null==o||null===(n=o.replace(/^.*OS ([\d_]+) like.*$/,"$1"))||void 0===n?void 0:n.replace(/_/g,".")},Debian:function(){return null==o?void 0:o.replace(/^.*Debian\/([\d.]+).*$/,"$1")},"Windows Phone":function(){return null==o?void 0:o.replace(/^.*Windows Phone( OS)? ([\d.]+);.*$/,"$2")},"Mac OS":function(){var n;return null==o||null===(n=o.replace(/^.*Mac OS X ([\d_]+).*$/,"$1"))||void 0===n?void 0:n.replace(/_/g,".")},WebOS:function(){return null==o?void 0:o.replace(/^.*hpwOS\/([\d.]+);.*$/,"$1")}};return r[e.os]&&(e.osVersion=null==r||null===(l=r[e.os])||void 0===l?void 0:l.call(r),e.osVersion==o&&(e.osVersion="")),e.osVersion},getOrientationStatu:function(){var n,e=null===(n=window)||void 0===n?void 0:n.matchMedia("(orientation: portrait)");return null!=e&&e.matches?"竖屏":"横屏"},getDeviceType:function(){var n=this;return n.device="PC",null==o||o.matchInfoMap(n),n.device},getNetwork:function(){var n;return null===(n=navigator)||void 0===n||null===(n=n.connection)||void 0===n?void 0:n.effectiveType},getLanguage:function(){return this.language=(l=(null==i||null===(n=i.navigator)||void 0===n?void 0:n.browserLanguage)||(null==i||null===(e=i.navigator)||void 0===e?void 0:e.language),(r=null==l?void 0:l.split("-"))[1]&&(r[1]=null==r||null===(o=r[1])||void 0===o?void 0:o.toUpperCase()),null==r?void 0:r.join("_")),this.language;var n,e,o,l,r},createFingerprint:function(n){var e,i,o,l=null===(e=document)||void 0===e?void 0:e.createElement("canvas"),r=null==l?void 0:l.getContext("2d"),u=n||(null===(i=window)||void 0===i||null===(i=i.location)||void 0===i?void 0:i.host);r.textBaseline="top",r.font="14px 'Arial'",r.textBaseline="tencent",r.fillStyle="#f60",r.fillRect(125,1,62,20),r.fillStyle="#069",r.fillText(u,2,15),r.fillStyle="rgba(102, 204, 0, 0.7)",r.fillText(u,4,17);var d=null==l||null===(o=l.toDataURL())||void 0===o?void 0:o.replace("data:image/png;base64,",""),a=atob(d);return function(n){var e,i,o,l="";for(e=0,i=(n+="").length;e36&&e.showModalDialog?v=!0:c>45&&(v=a("type","application/vnd.chromium.remoting-viewer"))}if(t.Baidu&&t.Opera&&(t.Baidu=!1),t.Mobile&&(t.Mobile=!((null==d?void 0:d.indexOf("iPad"))>-1)),v&&(a("type","application/gameplugin")||null!=i&&i.navigator&&void 0===(null==i?void 0:i.navigator.connection.saveData)?t["360SE"]=!0:t["360EE"]=!0),t.IE||t.Edge)switch((null===(r=window)||void 0===r?void 0:r.screenTop)-(null===(u=window)||void 0===u?void 0:u.screenY)){case 71:case 74:case 99:case 75:case 74:case 105:break;case 102:t["360EE"]=!0;break;case 104:t["360SE"]=!0}var f,s={Safari:function(){return null==d?void 0:d.replace(/^.*Version\/([\d.]+).*$/,"$1")},Chrome:function(){var n;return null==d||null===(n=d.replace(/^.*Chrome\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*CriOS\/([\d.]+).*$/,"$1")},IE:function(){var n;return null==d||null===(n=d.replace(/^.*MSIE ([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*rv:([\d.]+).*$/,"$1")},Edge:function(){return null==d?void 0:d.replace(/^.*Edge\/([\d.]+).*$/,"$1")},Firefox:function(){var n;return null==d||null===(n=d.replace(/^.*Firefox\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*FxiOS\/([\d.]+).*$/,"$1")},"Firefox Focus":function(){return null==d?void 0:d.replace(/^.*Focus\/([\d.]+).*$/,"$1")},Chromium:function(){return null==d?void 0:d.replace(/^.*Chromium\/([\d.]+).*$/,"$1")},Opera:function(){var n;return null==d||null===(n=d.replace(/^.*Opera\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*OPR\/([\d.]+).*$/,"$1")},Vivaldi:function(){return null==d?void 0:d.replace(/^.*Vivaldi\/([\d.]+).*$/,"$1")},Yandex:function(){return null==d?void 0:d.replace(/^.*YaBrowser\/([\d.]+).*$/,"$1")},Arora:function(){return null==d?void 0:d.replace(/^.*Arora\/([\d.]+).*$/,"$1")},Lunascape:function(){return null==d?void 0:d.replace(/^.*Lunascape[\/\s]([\d.]+).*$/,"$1")},QupZilla:function(){return null==d?void 0:d.replace(/^.*QupZilla[\/\s]([\d.]+).*$/,"$1")},"Coc Coc":function(){return null==d?void 0:d.replace(/^.*coc_coc_browser\/([\d.]+).*$/,"$1")},Kindle:function(){return null==d?void 0:d.replace(/^.*Version\/([\d.]+).*$/,"$1")},Iceweasel:function(){return null==d?void 0:d.replace(/^.*Iceweasel\/([\d.]+).*$/,"$1")},Konqueror:function(){return null==d?void 0:d.replace(/^.*Konqueror\/([\d.]+).*$/,"$1")},Iceape:function(){return null==d?void 0:d.replace(/^.*Iceape\/([\d.]+).*$/,"$1")},SeaMonkey:function(){return null==d?void 0:d.replace(/^.*SeaMonkey\/([\d.]+).*$/,"$1")},Epiphany:function(){return null==d?void 0:d.replace(/^.*Epiphany\/([\d.]+).*$/,"$1")},360:function(){return null==d?void 0:d.replace(/^.*QihooBrowser\/([\d.]+).*$/,"$1")},"360SE":function(){return{63:"10.0",55:"9.1",45:"8.1",42:"8.0",31:"7.0",21:"6.3"}[null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1")]||""},"360EE":function(){return{69:"11.0",63:"9.5",55:"9.0",50:"8.7",30:"7.5"}[null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1")]||""},Maxthon:function(){return null==d?void 0:d.replace(/^.*Maxthon\/([\d.]+).*$/,"$1")},QQBrowser:function(){return null==d?void 0:d.replace(/^.*QQBrowser\/([\d.]+).*$/,"$1")},QQ:function(){return null==d?void 0:d.replace(/^.*QQ\/([\d.]+).*$/,"$1")},Baidu:function(){return null==d?void 0:d.replace(/^.*BIDUBrowser[\s\/]([\d.]+).*$/,"$1")},UC:function(){return null==d?void 0:d.replace(/^.*UC?Browser\/([\d.]+).*$/,"$1")},Sogou:function(){var n;return null==d||null===(n=d.replace(/^.*SE ([\d.X]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*SogouMobileBrowser\/([\d.]+).*$/,"$1")},Liebao:function(){var n="";(null==d?void 0:d.indexOf("LieBaoFast"))>-1&&(n=null==d?void 0:d.replace(/^.*LieBaoFast\/([\d.]+).*$/,"$1"));var e=null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1");return n||{57:"6.5",49:"6.0",46:"5.9",42:"5.3",39:"5.2",34:"5.0",29:"4.5",21:"4.0"}[e]||""},LBBROWSER:function(){var n="";(null==d?void 0:d.indexOf("LieBaoFast"))>-1&&(n=null==d?void 0:d.replace(/^.*LieBaoFast\/([\d.]+).*$/,"$1"));var e=null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1");return n||{57:"6.5",49:"6.0",46:"5.9",42:"5.3",39:"5.2",34:"5.0",29:"4.5",21:"4.0"}[e]||""},"2345Explorer":function(){return null==d?void 0:d.replace(/^.*2345Explorer\/([\d.]+).*$/,"$1")},"115Browser":function(){return null==d?void 0:d.replace(/^.*115Browser\/([\d.]+).*$/,"$1")},TheWorld:function(){return null==d?void 0:d.replace(/^.*TheWorld ([\d.]+).*$/,"$1")},XiaoMi:function(){return null==d?void 0:d.replace(/^.*MiuiBrowser\/([\d.]+).*$/,"$1")},Vivo:function(){return null==d?void 0:d.replace(/^.*VivoBrowser\/([\d.]+).*$/,"$1")},Quark:function(){return null==d?void 0:d.replace(/^.*Quark\/([\d.]+).*$/,"$1")},Qiyu:function(){return null==d?void 0:d.replace(/^.*Qiyu\/([\d.]+).*$/,"$1")},Wechat:function(){return null==d?void 0:d.replace(/^.*MicroMessenger\/([\d.]+).*$/,"$1")},WechatWork:function(){return null==d?void 0:d.replace(/^.*wxwork\/([\d.]+).*$/,"$1")},Taobao:function(){return null==d?void 0:d.replace(/^.*AliApp\(TB\/([\d.]+).*$/,"$1")},Alipay:function(){return null==d?void 0:d.replace(/^.*AliApp\(AP\/([\d.]+).*$/,"$1")},Weibo:function(){return null==d?void 0:d.replace(/^.*weibo__([\d.]+).*$/,"$1")},Douban:function(){return null==d?void 0:d.replace(/^.*com.douban.frodo\/([\d.]+).*$/,"$1")},Suning:function(){return null==d?void 0:d.replace(/^.*SNEBUY-APP([\d.]+).*$/,"$1")},iQiYi:function(){return null==d?void 0:d.replace(/^.*IqiyiVersion\/([\d.]+).*$/,"$1")},DingTalk:function(){return null==d?void 0:d.replace(/^.*DingTalk\/([\d.]+).*$/,"$1")},Huawei:function(){var n;return null==d||null===(n=d.replace(/^.*Version\/([\d.]+).*$/,"$1"))||void 0===n||null===(n=n.replace(/^.*HuaweiBrowser\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*HBPC\/([\d.]+).*$/,"$1")}};return l.browserVersion="",s[l.browser]&&(l.browserVersion=null==s||null===(f=s[l.browser])||void 0===f?void 0:f.call(s),l.browserVersion==d&&(l.browserVersion="")),"Chrome"==l.browser&&null!=d&&d.match(/\S+Browser/)&&(l.browser=null==d?void 0:d.match(/\S+Browser/)[0],l.version=null==d?void 0:d.replace(/^.*Browser\/([\d.]+).*$/,"$1")),"Edge"==l.browser&&(l.version>"75"?l.engine="Blink":l.engine="EdgeHTML"),("Chrome"==l.browser&&parseInt(l.browserVersion)>27||t.Chrome&&"WebKit"==l.engine&&parseInt(s.Chrome())>27||"Opera"==l.browser&&parseInt(l.version)>12||"Yandex"==l.browser)&&(l.engine="Blink"),l.browser+"(版本: "+l.browserVersion+"  内核: "+l.engine+")"},getGeoPostion:function(){return new Promise((function(n,e){var i,o;null!==(i=navigator)&&void 0!==i&&i.geolocation?null===(o=navigator)||void 0===o||null===(o=o.geolocation)||void 0===o||o.getCurrentPosition((function(e){n(e)}),(function(e){n({coords:{longitude:"获取失败",latitude:"获取失败"}})}),{enableHighAccuracy:!1,timeout:1e4}):e("当前浏览器不支持获取地理位置")}))},toLunarDate:function(n){var e=new Date;return function(e){var o,l,r,u,d,a,t,v,c,f,s,p,x,g,O,h,w,$,b=null===(o=new Date(e))||void 0===o?void 0:o.getFullYear(),m=null===(l=new Date(e))||void 0===l?void 0:l.getMonth(),M=null===(r=new Date(e))||void 0===r?void 0:r.getDate(),y=1,S=0;function B(n){var e;return 15&(null==i||null===(e=i.lunarLib)||void 0===e||null===(e=e.lunarMap)||void 0===e?void 0:e[n-1900])}function E(n){var e;return B(n)?65536&(null==i||null===(e=i.lunarLib)||void 0===e||null===(e=e.lunarMap)||void 0===e?void 0:e[n-1900])?30:29:0}function L(n,e){var o;return(null==i||null===(o=i.lunarLib)||void 0===o||null===(o=o.lunarMap)||void 0===o?void 0:o[n-1900])&65536>>e?30:29}function D(n){var e,o,l=0,r=(n-new Date(1900,0,31))/864e5,u=r+40,d=14;for(e=1900;e<2050&&r>0;e++){for(var a=348,t=32768;t>8;t>>=1){var v;a+=(null==i||null===(v=i.lunarLib)||void 0===v?void 0:v.lunarMap[e-1900])&t?1:0}r-=l=a+E(e),d+=12}r<0&&(r+=l,e--,d-=12);var c=e,f=e-1864;o=B(e);var s=!1;for(e=1;e<13&&r>0;e++)o>0&&e===o+1&&!1===s?(--e,s=!0,l=E(c)):l=L(c,e),!0===s&&e===o+1&&(s=!1),r-=l,!1===s&&d++;return 0===r&&o>0&&e===o+1&&(s?s=!1:(s=!0,--e,--d)),r<0&&(r+=l,--e,--d),{year:c,month:e,day:r+1,isLeap:s,yearCycle:f,monthCycle:d,dayCycle:u}}new Array(3),w=1===m?b%4==0&&b%100!=0||b%400==0?29:28:null==i||null===($=i.lunarLib)||void 0===$?void 0:$.solarMonthArr[m];for(var C=0;CS&&(g=(x=D(new Date(b,m,n?M:null===(A=new Date)||void 0===A?void 0:A.getDate()))).year,O=x.month,y=x.day,S=(h=x.isLeap)?E(g):L(g,O),12===O&&(i.lunarLib.monthPlusOne=S))}p={lunarYear:g,lunarMonth:O,lunarDay:y,lunarLeap:h,chineseZodiac:null==i||null===(u=i.lunarLib)||void 0===u?void 0:u.AnimalsArr[(g-4)%12]};var k=null===(d=String(p.lunarYear))||void 0===d?void 0:d.split(""),T="".concat(null==i||null===(a=i.lunarLib)||void 0===a?void 0:a.chineseYear[k[0]]).concat(null==i||null===(t=i.lunarLib)||void 0===t?void 0:t.chineseYear[k[1]]).concat(null==i||null===(v=i.lunarLib)||void 0===v?void 0:v.chineseYear[k[2]]).concat(null==i||null===(c=i.lunarLib)||void 0===c?void 0:c.chineseYear[k[3]]);return{year:"".concat(T,"年"),month:"".concat(p.isLeap?"闰":"").concat(null==i||null===(f=i.lunarLib)||void 0===f?void 0:f.chineseMonth[p.lunarMonth-1],"月"),day:"".concat(function(n){var e;switch(n=null===Math||void 0===Math?void 0:Math.floor(n)){case 10:e="初十";break;case 20:e="二十";break;case 30:e="三十";break;default:e=i.lunarLib.numberToHanzi_2[null===Math||void 0===Math?void 0:Math.floor(n/10)],e+=i.lunarLib.numberToHanzi_1[n%10]}return e}(p.lunarDay)),chineseZodiac:null===(s=p)||void 0===s?void 0:s.chineseZodiac}}(n?null==n?void 0:n.replaceAll("-","/"):"".concat(null==e?void 0:e.getFullYear(),"/").concat((null==e?void 0:e.getMonth())+1,"/").concat(null==e?void 0:e.getDate()))},getPlatform:function(){var n,e;return(null==i||null===(n=i.navigator)||void 0===n||null===(n=n.userAgentData)||void 0===n?void 0:n.platform)||(null==i||null===(e=i.navigator)||void 0===e?void 0:e.platform)}},l={DeviceInfoObj:function(n){var l,r,u,d,a={deviceType:null==o?void 0:o.getDeviceType(),OS:null==o?void 0:o.getOS(),OSVersion:null==o?void 0:o.getOSVersion(),platform:null==o?void 0:o.getPlatform(),screenHeight:null==e||null===(l=e.screen)||void 0===l?void 0:l.height,screenWidth:null==e||null===(r=e.screen)||void 0===r?void 0:r.width,language:null==o?void 0:o.getLanguage(),netWork:null==o?void 0:o.getNetwork(),orientation:null==o?void 0:o.getOrientationStatu(),browserInfo:null==o?void 0:o.getBrowserInfo(),fingerprint:null==o?void 0:o.createFingerprint(n&&n.domain||""),userAgent:null==i||null===(u=i.navigator)||void 0===u?void 0:u.userAgent,geoPosition:!0,date:null==o?void 0:o.getDate(),lunarDate:null==o?void 0:o.toLunarDate(n&&n.transferDateToLunar||""),week:null==o?void 0:o.getWeek(),UUID:null==o?void 0:o.createUUID()},t={};if(n&&n.info&&0!==(null==n||null===(d=n.info)||void 0===d?void 0:d.length)){var v={},c=function(e){var i;null==n||null===(i=n.info)||void 0===i||i.forEach((function(n){var i;(null===(i=n)||void 0===i?void 0:i.toLowerCase())===(null==e?void 0:e.toLowerCase())&&(v[n=e]=null==a?void 0:a[n])}))};for(var f in a)c(f);t=v}else t=a;return new Promise((function(n){var e,i;null!==(e=t)&&void 0!==e&&e.geoPosition?null==o||null===(i=o.getGeoPostion)||void 0===i||null===(i=i.call(o))||void 0===i||null===(i=i.then((function(e){var i,o;t.geoPosition="经度:"+(null==e||null===(i=e.coords)||void 0===i?void 0:i.longitude)+" 纬度:"+(null==e||null===(o=e.coords)||void 0===o?void 0:o.latitude),n(t)})))||void 0===i||i.catch((function(e){t.geoPosition=e,n(t)})):n(t)}))}};return{Info:function(n){return null==o||o.createLoading(),new Promise((function(e){var i;null==l||null===(i=l.DeviceInfoObj(n))||void 0===i||i.then((function(n){null==o||o.removeLoading(),e(n)}))}))}}}();if("undefined"==typeof window||null===("undefined"==typeof window?"undefined":i(window))){var l,r=new(0,require("jsdom").JSDOM)("");window=null==r?void 0:r.window,document=null==r||null===(l=r.window)||void 0===l?void 0:l.document,globalThis.window=window,globalThis.document=document}window.Device=o;export{o as default}; -------------------------------------------------------------------------------- /dist/device.js: -------------------------------------------------------------------------------- 1 | !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).Device=e()}(this,(function(){"use strict";function n(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var e={exports:{}};!function(n){function e(i){return n.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},n.exports.__esModule=!0,n.exports.default=n.exports,e(i)}n.exports=e,n.exports.__esModule=!0,n.exports.default=n.exports}(e);var i=n(e.exports),o=function(){var n="undefined"!=typeof self?self:this,e=n||{},i={navigator:void 0!==(null==n?void 0:n.navigator)?null==n?void 0:n.navigator:{},infoMap:{engine:["WebKit","Trident","Gecko","Presto"],browser:["Safari","Chrome","Edge","IE","Firefox","Firefox Focus","Chromium","Opera","Vivaldi","Yandex","Arora","Lunascape","QupZilla","Coc Coc","Kindle","Iceweasel","Konqueror","Iceape","SeaMonkey","Epiphany","360","360SE","360EE","UC","QQBrowser","QQ","Baidu","Maxthon","Sogou","LBBROWSER","2345Explorer","TheWorld","XiaoMi","Quark","Qiyu","Wechat",,"WechatWork","Taobao","Alipay","Weibo","Douban","Suning","iQiYi"],os:["Windows","Linux","Mac OS","Android","Ubuntu","FreeBSD","Debian","iOS","Windows Phone","BlackBerry","MeeGo","Symbian","Chrome OS","WebOS","HarmonyOS"],device:["Mobile","Tablet","iPad"]},lunarLib:{lunarMap:[19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42448,83315,21200,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46496,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,21952,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,53856,60005,54576,23200,30371,38608,19415,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448],solarMonthArr:[31,28,31,30,31,30,31,31,30,31,30,31],AnimalsArr:["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],numberToHanzi_1:["日","一","二","三","四","五","六","七","八","九","十"],numberToHanzi_2:["初","十","廿","卅"],chineseMonth:["正","二","三","四","五","六","七","八","九","十","冬","腊"],chineseYear:["零","一","二","三","四","五","六","七","八","九"],monthPlusOne:""}},o={createLoading:function(n,e){var i,o,l=1,r="";e&&(r='
'+l+"s
");var u="";n&&(u='
'+n+"
");var d=null===(i=document)||void 0===i?void 0:i.createElement("div");if(d.id="create_loading",d.style="display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999999999; text-align: center; font-size: 14px; display: flex; flex: 1; justify-content: center; flex-direction: column; align-items: center; background: rgba(0, 0, 0, 0.09);",d.innerHTML=r+'
'+u,null===(o=document)||void 0===o||null===(o=o.body)||void 0===o||o.appendChild(d),e){var a,t=null===(a=document)||void 0===a?void 0:a.getElementById("count_box");setInterval((function(){l++,t&&(t.innerHTML="
"+l+"s
")}),1e3)}},removeLoading:function(){var n,e,i=null===(n=document)||void 0===n?void 0:n.getElementById("create_loading");null===(e=document)||void 0===e||null===(e=e.body)||void 0===e||e.removeChild(i)},createUUID:function(){for(var n=[],e="0123456789abcdef",i=0;i<36;i++)n[i]=e.substr(null===Math||void 0===Math?void 0:Math.floor(16*(null===Math||void 0===Math?void 0:Math.random())),1);return n[14]="4",n[19]=e.substr(3&n[19]|8,1),n[8]=n[13]=n[18]=n[23]="-",null==n?void 0:n.join("")},getDate:function(){var n=new Date,e=null==n?void 0:n.getFullYear(),i=(null==n?void 0:n.getMonth())+1,o=null==n?void 0:n.getDate(),l=null==n?void 0:n.getHours(),r=null==n?void 0:n.getMinutes(),u=null==n?void 0:n.getSeconds();return i=i>9?i:"0"+i,o=o>9?o:"0"+o,l=l>9?l:"0"+l,r=r>9?r:"0"+r,u=u>9?u:"0"+u,"".concat(e,"/").concat(i,"/").concat(o," ").concat(l,":").concat(r,":").concat(u)},getWeek:function(){var n=new Array("周日","周一","周二","周三","周四","周五","周六"),e=new Date;return n[null==e?void 0:e.getDay()]},getMatchMap:function(n){return{Trident:(null==n?void 0:n.indexOf("Trident"))>-1||(null==n?void 0:n.indexOf("NET CLR"))>-1,Presto:(null==n?void 0:n.indexOf("Presto"))>-1,WebKit:(null==n?void 0:n.indexOf("AppleWebKit"))>-1,Gecko:(null==n?void 0:n.indexOf("Gecko/"))>-1,Safari:(null==n?void 0:n.indexOf("Safari"))>-1,Chrome:(null==n?void 0:n.indexOf("Chrome"))>-1||(null==n?void 0:n.indexOf("CriOS"))>-1,IE:(null==n?void 0:n.indexOf("MSIE"))>-1||(null==n?void 0:n.indexOf("Trident"))>-1,Edge:(null==n?void 0:n.indexOf("Edge"))>-1,Firefox:(null==n?void 0:n.indexOf("Firefox"))>-1||(null==n?void 0:n.indexOf("FxiOS"))>-1,"Firefox Focus":(null==n?void 0:n.indexOf("Focus"))>-1,Chromium:(null==n?void 0:n.indexOf("Chromium"))>-1,Opera:(null==n?void 0:n.indexOf("Opera"))>-1||(null==n?void 0:n.indexOf("OPR"))>-1,Vivaldi:(null==n?void 0:n.indexOf("Vivaldi"))>-1,Yandex:(null==n?void 0:n.indexOf("YaBrowser"))>-1,Arora:(null==n?void 0:n.indexOf("Arora"))>-1,Lunascape:(null==n?void 0:n.indexOf("Lunascape"))>-1,QupZilla:(null==n?void 0:n.indexOf("QupZilla"))>-1,"Coc Coc":(null==n?void 0:n.indexOf("coc_coc_browser"))>-1,Kindle:(null==n?void 0:n.indexOf("Kindle"))>-1||(null==n?void 0:n.indexOf("Silk/"))>-1,Iceweasel:(null==n?void 0:n.indexOf("Iceweasel"))>-1,Konqueror:(null==n?void 0:n.indexOf("Konqueror"))>-1,Iceape:(null==n?void 0:n.indexOf("Iceape"))>-1,SeaMonkey:(null==n?void 0:n.indexOf("SeaMonkey"))>-1,Epiphany:(null==n?void 0:n.indexOf("Epiphany"))>-1,360:(null==n?void 0:n.indexOf("QihooBrowser"))>-1||(null==n?void 0:n.indexOf("QHBrowser"))>-1,"360EE":(null==n?void 0:n.indexOf("360EE"))>-1,"360SE":(null==n?void 0:n.indexOf("360SE"))>-1,UC:(null==n?void 0:n.indexOf("UC"))>-1||(null==n?void 0:n.indexOf(" UBrowser"))>-1,QQBrowser:(null==n?void 0:n.indexOf("QQBrowser"))>-1,QQ:(null==n?void 0:n.indexOf("QQ/"))>-1,Baidu:(null==n?void 0:n.indexOf("Baidu"))>-1||(null==n?void 0:n.indexOf("BIDUBrowser"))>-1,Maxthon:(null==n?void 0:n.indexOf("Maxthon"))>-1,Sogou:(null==n?void 0:n.indexOf("MetaSr"))>-1||(null==n?void 0:n.indexOf("Sogou"))>-1,LBBROWSER:(null==n?void 0:n.indexOf("LBBROWSER"))>-1||(null==n?void 0:n.indexOf("LieBaoFast"))>-1,"2345Explorer":(null==n?void 0:n.indexOf("2345Explorer"))>-1,TheWorld:(null==n?void 0:n.indexOf("TheWorld"))>-1,XiaoMi:(null==n?void 0:n.indexOf("MiuiBrowser"))>-1,Quark:(null==n?void 0:n.indexOf("Quark"))>-1,Qiyu:(null==n?void 0:n.indexOf("Qiyu"))>-1,Wechat:(null==n?void 0:n.indexOf("MicroMessenger"))>-1,WechatWork:(null==n?void 0:n.indexOf("wxwork/"))>-1,Taobao:(null==n?void 0:n.indexOf("AliApp(TB"))>-1,Alipay:(null==n?void 0:n.indexOf("AliApp(AP"))>-1,Weibo:(null==n?void 0:n.indexOf("Weibo"))>-1,Douban:(null==n?void 0:n.indexOf("com.douban.frodo"))>-1,Suning:(null==n?void 0:n.indexOf("SNEBUY-APP"))>-1,iQiYi:(null==n?void 0:n.indexOf("IqiyiApp"))>-1,DingTalk:(null==n?void 0:n.indexOf("DingTalk"))>-1,Vivo:(null==n?void 0:n.indexOf("VivoBrowser"))>-1,Huawei:(null==n?void 0:n.indexOf("HuaweiBrowser"))>-1||(null==n?void 0:n.indexOf("HUAWEI/"))>-1||(null==n?void 0:n.indexOf("HONOR"))>-1||(null==n?void 0:n.indexOf("HBPC/"))>-1,Windows:(null==n?void 0:n.indexOf("Windows"))>-1,Linux:(null==n?void 0:n.indexOf("Linux"))>-1||(null==n?void 0:n.indexOf("X11"))>-1,"Mac OS":(null==n?void 0:n.indexOf("Macintosh"))>-1,Android:(null==n?void 0:n.indexOf("Android"))>-1||(null==n?void 0:n.indexOf("Adr"))>-1,Ubuntu:(null==n?void 0:n.indexOf("Ubuntu"))>-1,FreeBSD:(null==n?void 0:n.indexOf("FreeBSD"))>-1,Debian:(null==n?void 0:n.indexOf("Debian"))>-1,"Windows Phone":(null==n?void 0:n.indexOf("IEMobile"))>-1||(null==n?void 0:n.indexOf("Windows Phone"))>-1,BlackBerry:(null==n?void 0:n.indexOf("BlackBerry"))>-1||(null==n?void 0:n.indexOf("RIM"))>-1,MeeGo:(null==n?void 0:n.indexOf("MeeGo"))>-1,Symbian:(null==n?void 0:n.indexOf("Symbian"))>-1,iOS:(null==n?void 0:n.indexOf("like Mac OS X"))>-1,"Chrome OS":(null==n?void 0:n.indexOf("CrOS"))>-1,WebOS:(null==n?void 0:n.indexOf("hpwOS"))>-1,HarmonyOS:(null==n?void 0:n.indexOf("HarmonyOS"))>-1,Mobile:(null==n?void 0:n.indexOf("Mobi"))>-1||(null==n?void 0:n.indexOf("iPh"))>-1||(null==n?void 0:n.indexOf("480"))>-1,Tablet:(null==n?void 0:n.indexOf("Tablet"))>-1||(null==n?void 0:n.indexOf("Nexus 7"))>-1,iPad:(null==n?void 0:n.indexOf("iPad"))>-1}},matchInfoMap:function(n){var e,l=(null==i||null===(e=i.navigator)||void 0===e?void 0:e.userAgent)||{},r=null==o?void 0:o.getMatchMap(l);for(var u in null==i?void 0:i.infoMap)for(var d=0;d<(null==i||null===(a=i.infoMap)||void 0===a||null===(a=a[u])||void 0===a?void 0:a.length);d++){var a,t,v=null==i||null===(t=i.infoMap)||void 0===t||null===(t=t[u])||void 0===t?void 0:t[d];r[v]&&(n[u]=v)}},getOS:function(){return null==o||o.matchInfoMap(this),this.os},getOSVersion:function(){var n,e=this,o=(null==i||null===(n=i.navigator)||void 0===n?void 0:n.userAgent)||{};e.osVersion="";var l,r={Windows:function(){var n=null==o?void 0:o.replace(/^.*Windows NT ([\d.]+);.*$/,"$1");return{10:"10 || 11",6.3:"8.1",6.2:"8",6.1:"7","6.0":"Vista",5.2:"XP 64-Bit",5.1:"XP","5.0":"2000","4.0":"NT 4.0","3.5.1":"NT 3.5.1",3.5:"NT 3.5",3.1:"NT 3.1"}[n]||n},Android:function(){return null==o?void 0:o.replace(/^.*Android ([\d.]+);.*$/,"$1")},iOS:function(){var n;return null==o||null===(n=o.replace(/^.*OS ([\d_]+) like.*$/,"$1"))||void 0===n?void 0:n.replace(/_/g,".")},Debian:function(){return null==o?void 0:o.replace(/^.*Debian\/([\d.]+).*$/,"$1")},"Windows Phone":function(){return null==o?void 0:o.replace(/^.*Windows Phone( OS)? ([\d.]+);.*$/,"$2")},"Mac OS":function(){var n;return null==o||null===(n=o.replace(/^.*Mac OS X ([\d_]+).*$/,"$1"))||void 0===n?void 0:n.replace(/_/g,".")},WebOS:function(){return null==o?void 0:o.replace(/^.*hpwOS\/([\d.]+);.*$/,"$1")}};return r[e.os]&&(e.osVersion=null==r||null===(l=r[e.os])||void 0===l?void 0:l.call(r),e.osVersion==o&&(e.osVersion="")),e.osVersion},getOrientationStatu:function(){var n,e=null===(n=window)||void 0===n?void 0:n.matchMedia("(orientation: portrait)");return null!=e&&e.matches?"竖屏":"横屏"},getDeviceType:function(){var n=this;return n.device="PC",null==o||o.matchInfoMap(n),n.device},getNetwork:function(){var n;return null===(n=navigator)||void 0===n||null===(n=n.connection)||void 0===n?void 0:n.effectiveType},getLanguage:function(){return this.language=(l=(null==i||null===(n=i.navigator)||void 0===n?void 0:n.browserLanguage)||(null==i||null===(e=i.navigator)||void 0===e?void 0:e.language),(r=null==l?void 0:l.split("-"))[1]&&(r[1]=null==r||null===(o=r[1])||void 0===o?void 0:o.toUpperCase()),null==r?void 0:r.join("_")),this.language;var n,e,o,l,r},createFingerprint:function(n){var e,i,o,l=null===(e=document)||void 0===e?void 0:e.createElement("canvas"),r=null==l?void 0:l.getContext("2d"),u=n||(null===(i=window)||void 0===i||null===(i=i.location)||void 0===i?void 0:i.host);r.textBaseline="top",r.font="14px 'Arial'",r.textBaseline="tencent",r.fillStyle="#f60",r.fillRect(125,1,62,20),r.fillStyle="#069",r.fillText(u,2,15),r.fillStyle="rgba(102, 204, 0, 0.7)",r.fillText(u,4,17);var d=null==l||null===(o=l.toDataURL())||void 0===o?void 0:o.replace("data:image/png;base64,",""),a=atob(d);return function(n){var e,i,o,l="";for(e=0,i=(n+="").length;e36&&e.showModalDialog?v=!0:c>45&&(v=a("type","application/vnd.chromium.remoting-viewer"))}if(t.Baidu&&t.Opera&&(t.Baidu=!1),t.Mobile&&(t.Mobile=!((null==d?void 0:d.indexOf("iPad"))>-1)),v&&(a("type","application/gameplugin")||null!=i&&i.navigator&&void 0===(null==i?void 0:i.navigator.connection.saveData)?t["360SE"]=!0:t["360EE"]=!0),t.IE||t.Edge)switch((null===(r=window)||void 0===r?void 0:r.screenTop)-(null===(u=window)||void 0===u?void 0:u.screenY)){case 71:case 74:case 99:case 75:case 74:case 105:break;case 102:t["360EE"]=!0;break;case 104:t["360SE"]=!0}var f,s={Safari:function(){return null==d?void 0:d.replace(/^.*Version\/([\d.]+).*$/,"$1")},Chrome:function(){var n;return null==d||null===(n=d.replace(/^.*Chrome\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*CriOS\/([\d.]+).*$/,"$1")},IE:function(){var n;return null==d||null===(n=d.replace(/^.*MSIE ([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*rv:([\d.]+).*$/,"$1")},Edge:function(){return null==d?void 0:d.replace(/^.*Edge\/([\d.]+).*$/,"$1")},Firefox:function(){var n;return null==d||null===(n=d.replace(/^.*Firefox\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*FxiOS\/([\d.]+).*$/,"$1")},"Firefox Focus":function(){return null==d?void 0:d.replace(/^.*Focus\/([\d.]+).*$/,"$1")},Chromium:function(){return null==d?void 0:d.replace(/^.*Chromium\/([\d.]+).*$/,"$1")},Opera:function(){var n;return null==d||null===(n=d.replace(/^.*Opera\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*OPR\/([\d.]+).*$/,"$1")},Vivaldi:function(){return null==d?void 0:d.replace(/^.*Vivaldi\/([\d.]+).*$/,"$1")},Yandex:function(){return null==d?void 0:d.replace(/^.*YaBrowser\/([\d.]+).*$/,"$1")},Arora:function(){return null==d?void 0:d.replace(/^.*Arora\/([\d.]+).*$/,"$1")},Lunascape:function(){return null==d?void 0:d.replace(/^.*Lunascape[\/\s]([\d.]+).*$/,"$1")},QupZilla:function(){return null==d?void 0:d.replace(/^.*QupZilla[\/\s]([\d.]+).*$/,"$1")},"Coc Coc":function(){return null==d?void 0:d.replace(/^.*coc_coc_browser\/([\d.]+).*$/,"$1")},Kindle:function(){return null==d?void 0:d.replace(/^.*Version\/([\d.]+).*$/,"$1")},Iceweasel:function(){return null==d?void 0:d.replace(/^.*Iceweasel\/([\d.]+).*$/,"$1")},Konqueror:function(){return null==d?void 0:d.replace(/^.*Konqueror\/([\d.]+).*$/,"$1")},Iceape:function(){return null==d?void 0:d.replace(/^.*Iceape\/([\d.]+).*$/,"$1")},SeaMonkey:function(){return null==d?void 0:d.replace(/^.*SeaMonkey\/([\d.]+).*$/,"$1")},Epiphany:function(){return null==d?void 0:d.replace(/^.*Epiphany\/([\d.]+).*$/,"$1")},360:function(){return null==d?void 0:d.replace(/^.*QihooBrowser\/([\d.]+).*$/,"$1")},"360SE":function(){return{63:"10.0",55:"9.1",45:"8.1",42:"8.0",31:"7.0",21:"6.3"}[null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1")]||""},"360EE":function(){return{69:"11.0",63:"9.5",55:"9.0",50:"8.7",30:"7.5"}[null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1")]||""},Maxthon:function(){return null==d?void 0:d.replace(/^.*Maxthon\/([\d.]+).*$/,"$1")},QQBrowser:function(){return null==d?void 0:d.replace(/^.*QQBrowser\/([\d.]+).*$/,"$1")},QQ:function(){return null==d?void 0:d.replace(/^.*QQ\/([\d.]+).*$/,"$1")},Baidu:function(){return null==d?void 0:d.replace(/^.*BIDUBrowser[\s\/]([\d.]+).*$/,"$1")},UC:function(){return null==d?void 0:d.replace(/^.*UC?Browser\/([\d.]+).*$/,"$1")},Sogou:function(){var n;return null==d||null===(n=d.replace(/^.*SE ([\d.X]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*SogouMobileBrowser\/([\d.]+).*$/,"$1")},Liebao:function(){var n="";(null==d?void 0:d.indexOf("LieBaoFast"))>-1&&(n=null==d?void 0:d.replace(/^.*LieBaoFast\/([\d.]+).*$/,"$1"));var e=null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1");return n||{57:"6.5",49:"6.0",46:"5.9",42:"5.3",39:"5.2",34:"5.0",29:"4.5",21:"4.0"}[e]||""},LBBROWSER:function(){var n="";(null==d?void 0:d.indexOf("LieBaoFast"))>-1&&(n=null==d?void 0:d.replace(/^.*LieBaoFast\/([\d.]+).*$/,"$1"));var e=null==d?void 0:d.replace(/^.*Chrome\/([\d]+).*$/,"$1");return n||{57:"6.5",49:"6.0",46:"5.9",42:"5.3",39:"5.2",34:"5.0",29:"4.5",21:"4.0"}[e]||""},"2345Explorer":function(){return null==d?void 0:d.replace(/^.*2345Explorer\/([\d.]+).*$/,"$1")},"115Browser":function(){return null==d?void 0:d.replace(/^.*115Browser\/([\d.]+).*$/,"$1")},TheWorld:function(){return null==d?void 0:d.replace(/^.*TheWorld ([\d.]+).*$/,"$1")},XiaoMi:function(){return null==d?void 0:d.replace(/^.*MiuiBrowser\/([\d.]+).*$/,"$1")},Vivo:function(){return null==d?void 0:d.replace(/^.*VivoBrowser\/([\d.]+).*$/,"$1")},Quark:function(){return null==d?void 0:d.replace(/^.*Quark\/([\d.]+).*$/,"$1")},Qiyu:function(){return null==d?void 0:d.replace(/^.*Qiyu\/([\d.]+).*$/,"$1")},Wechat:function(){return null==d?void 0:d.replace(/^.*MicroMessenger\/([\d.]+).*$/,"$1")},WechatWork:function(){return null==d?void 0:d.replace(/^.*wxwork\/([\d.]+).*$/,"$1")},Taobao:function(){return null==d?void 0:d.replace(/^.*AliApp\(TB\/([\d.]+).*$/,"$1")},Alipay:function(){return null==d?void 0:d.replace(/^.*AliApp\(AP\/([\d.]+).*$/,"$1")},Weibo:function(){return null==d?void 0:d.replace(/^.*weibo__([\d.]+).*$/,"$1")},Douban:function(){return null==d?void 0:d.replace(/^.*com.douban.frodo\/([\d.]+).*$/,"$1")},Suning:function(){return null==d?void 0:d.replace(/^.*SNEBUY-APP([\d.]+).*$/,"$1")},iQiYi:function(){return null==d?void 0:d.replace(/^.*IqiyiVersion\/([\d.]+).*$/,"$1")},DingTalk:function(){return null==d?void 0:d.replace(/^.*DingTalk\/([\d.]+).*$/,"$1")},Huawei:function(){var n;return null==d||null===(n=d.replace(/^.*Version\/([\d.]+).*$/,"$1"))||void 0===n||null===(n=n.replace(/^.*HuaweiBrowser\/([\d.]+).*$/,"$1"))||void 0===n?void 0:n.replace(/^.*HBPC\/([\d.]+).*$/,"$1")}};return l.browserVersion="",s[l.browser]&&(l.browserVersion=null==s||null===(f=s[l.browser])||void 0===f?void 0:f.call(s),l.browserVersion==d&&(l.browserVersion="")),"Chrome"==l.browser&&null!=d&&d.match(/\S+Browser/)&&(l.browser=null==d?void 0:d.match(/\S+Browser/)[0],l.version=null==d?void 0:d.replace(/^.*Browser\/([\d.]+).*$/,"$1")),"Edge"==l.browser&&(l.version>"75"?l.engine="Blink":l.engine="EdgeHTML"),("Chrome"==l.browser&&parseInt(l.browserVersion)>27||t.Chrome&&"WebKit"==l.engine&&parseInt(s.Chrome())>27||"Opera"==l.browser&&parseInt(l.version)>12||"Yandex"==l.browser)&&(l.engine="Blink"),l.browser+"(版本: "+l.browserVersion+"  内核: "+l.engine+")"},getGeoPostion:function(){return new Promise((function(n,e){var i,o;null!==(i=navigator)&&void 0!==i&&i.geolocation?null===(o=navigator)||void 0===o||null===(o=o.geolocation)||void 0===o||o.getCurrentPosition((function(e){n(e)}),(function(e){n({coords:{longitude:"获取失败",latitude:"获取失败"}})}),{enableHighAccuracy:!1,timeout:1e4}):e("当前浏览器不支持获取地理位置")}))},toLunarDate:function(n){var e=new Date;return function(e){var o,l,r,u,d,a,t,v,c,f,s,p,g,x,h,O,w,$,b=null===(o=new Date(e))||void 0===o?void 0:o.getFullYear(),m=null===(l=new Date(e))||void 0===l?void 0:l.getMonth(),y=null===(r=new Date(e))||void 0===r?void 0:r.getDate(),M=1,S=0;function B(n){var e;return 15&(null==i||null===(e=i.lunarLib)||void 0===e||null===(e=e.lunarMap)||void 0===e?void 0:e[n-1900])}function E(n){var e;return B(n)?65536&(null==i||null===(e=i.lunarLib)||void 0===e||null===(e=e.lunarMap)||void 0===e?void 0:e[n-1900])?30:29:0}function L(n,e){var o;return(null==i||null===(o=i.lunarLib)||void 0===o||null===(o=o.lunarMap)||void 0===o?void 0:o[n-1900])&65536>>e?30:29}function D(n){var e,o,l=0,r=(n-new Date(1900,0,31))/864e5,u=r+40,d=14;for(e=1900;e<2050&&r>0;e++){for(var a=348,t=32768;t>8;t>>=1){var v;a+=(null==i||null===(v=i.lunarLib)||void 0===v?void 0:v.lunarMap[e-1900])&t?1:0}r-=l=a+E(e),d+=12}r<0&&(r+=l,e--,d-=12);var c=e,f=e-1864;o=B(e);var s=!1;for(e=1;e<13&&r>0;e++)o>0&&e===o+1&&!1===s?(--e,s=!0,l=E(c)):l=L(c,e),!0===s&&e===o+1&&(s=!1),r-=l,!1===s&&d++;return 0===r&&o>0&&e===o+1&&(s?s=!1:(s=!0,--e,--d)),r<0&&(r+=l,--e,--d),{year:c,month:e,day:r+1,isLeap:s,yearCycle:f,monthCycle:d,dayCycle:u}}new Array(3),w=1===m?b%4==0&&b%100!=0||b%400==0?29:28:null==i||null===($=i.lunarLib)||void 0===$?void 0:$.solarMonthArr[m];for(var C=0;CS&&(x=(g=D(new Date(b,m,n?y:null===(A=new Date)||void 0===A?void 0:A.getDate()))).year,h=g.month,M=g.day,S=(O=g.isLeap)?E(x):L(x,h),12===h&&(i.lunarLib.monthPlusOne=S))}p={lunarYear:x,lunarMonth:h,lunarDay:M,lunarLeap:O,chineseZodiac:null==i||null===(u=i.lunarLib)||void 0===u?void 0:u.AnimalsArr[(x-4)%12]};var T=null===(d=String(p.lunarYear))||void 0===d?void 0:d.split(""),k="".concat(null==i||null===(a=i.lunarLib)||void 0===a?void 0:a.chineseYear[T[0]]).concat(null==i||null===(t=i.lunarLib)||void 0===t?void 0:t.chineseYear[T[1]]).concat(null==i||null===(v=i.lunarLib)||void 0===v?void 0:v.chineseYear[T[2]]).concat(null==i||null===(c=i.lunarLib)||void 0===c?void 0:c.chineseYear[T[3]]);return{year:"".concat(k,"年"),month:"".concat(p.isLeap?"闰":"").concat(null==i||null===(f=i.lunarLib)||void 0===f?void 0:f.chineseMonth[p.lunarMonth-1],"月"),day:"".concat(function(n){var e;switch(n=null===Math||void 0===Math?void 0:Math.floor(n)){case 10:e="初十";break;case 20:e="二十";break;case 30:e="三十";break;default:e=i.lunarLib.numberToHanzi_2[null===Math||void 0===Math?void 0:Math.floor(n/10)],e+=i.lunarLib.numberToHanzi_1[n%10]}return e}(p.lunarDay)),chineseZodiac:null===(s=p)||void 0===s?void 0:s.chineseZodiac}}(n?null==n?void 0:n.replaceAll("-","/"):"".concat(null==e?void 0:e.getFullYear(),"/").concat((null==e?void 0:e.getMonth())+1,"/").concat(null==e?void 0:e.getDate()))},getPlatform:function(){var n,e;return(null==i||null===(n=i.navigator)||void 0===n||null===(n=n.userAgentData)||void 0===n?void 0:n.platform)||(null==i||null===(e=i.navigator)||void 0===e?void 0:e.platform)}},l={DeviceInfoObj:function(n){var l,r,u,d,a={deviceType:null==o?void 0:o.getDeviceType(),OS:null==o?void 0:o.getOS(),OSVersion:null==o?void 0:o.getOSVersion(),platform:null==o?void 0:o.getPlatform(),screenHeight:null==e||null===(l=e.screen)||void 0===l?void 0:l.height,screenWidth:null==e||null===(r=e.screen)||void 0===r?void 0:r.width,language:null==o?void 0:o.getLanguage(),netWork:null==o?void 0:o.getNetwork(),orientation:null==o?void 0:o.getOrientationStatu(),browserInfo:null==o?void 0:o.getBrowserInfo(),fingerprint:null==o?void 0:o.createFingerprint(n&&n.domain||""),userAgent:null==i||null===(u=i.navigator)||void 0===u?void 0:u.userAgent,geoPosition:!0,date:null==o?void 0:o.getDate(),lunarDate:null==o?void 0:o.toLunarDate(n&&n.transferDateToLunar||""),week:null==o?void 0:o.getWeek(),UUID:null==o?void 0:o.createUUID()},t={};if(n&&n.info&&0!==(null==n||null===(d=n.info)||void 0===d?void 0:d.length)){var v={},c=function(e){var i;null==n||null===(i=n.info)||void 0===i||i.forEach((function(n){var i;(null===(i=n)||void 0===i?void 0:i.toLowerCase())===(null==e?void 0:e.toLowerCase())&&(v[n=e]=null==a?void 0:a[n])}))};for(var f in a)c(f);t=v}else t=a;return new Promise((function(n){var e,i;null!==(e=t)&&void 0!==e&&e.geoPosition?null==o||null===(i=o.getGeoPostion)||void 0===i||null===(i=i.call(o))||void 0===i||null===(i=i.then((function(e){var i,o;t.geoPosition="经度:"+(null==e||null===(i=e.coords)||void 0===i?void 0:i.longitude)+" 纬度:"+(null==e||null===(o=e.coords)||void 0===o?void 0:o.latitude),n(t)})))||void 0===i||i.catch((function(e){t.geoPosition=e,n(t)})):n(t)}))}};return{Info:function(n){return null==o||o.createLoading(),new Promise((function(e){var i;null==l||null===(i=l.DeviceInfoObj(n))||void 0===i||i.then((function(n){null==o||o.removeLoading(),e(n)}))}))}}}();if("undefined"==typeof window||null===("undefined"==typeof window?"undefined":i(window))){var l,r=new(0,require("jsdom").JSDOM)("");window=null==r?void 0:r.window,document=null==r||null===(l=r.window)||void 0===l?void 0:l.document,globalThis.window=window,globalThis.document=document}return window.Device=o,o})); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@skillnull/device-js", 3 | "version": "2.1.8", 4 | "description": "Get device information by javascript.", 5 | "main": "dist/device", 6 | "author": "skillnull", 7 | "keywords": [ 8 | "DeviceJS", 9 | "Device", 10 | "device-js", 11 | "skillnull", 12 | "SKILL.NULL" 13 | ], 14 | "scripts": { 15 | "build": "rollup --config rollup.config.js --bundleConfigAsCjs" 16 | }, 17 | "homepage": "https://github.com/skillnull/DeviceJs", 18 | "repository": { 19 | "type": "git", 20 | "url": "git+https://github.com/skillnull/DeviceJs.git" 21 | }, 22 | "bugs": { 23 | "url": "https://github.com/skillnull/DeviceJs/issues" 24 | }, 25 | "license": "MIT", 26 | "devDependencies": { 27 | "@babel/cli": "^7.24.7", 28 | "@babel/core": "^7.24.7", 29 | "@babel/plugin-transform-runtime": "^7.24.7", 30 | "@babel/polyfill": "^7.12.1", 31 | "@babel/preset-env": "^7.24.7", 32 | "@babel/runtime": "^7.24.7", 33 | "@rollup/plugin-babel": "^6.0.4", 34 | "@rollup/plugin-commonjs": "^26.0.1", 35 | "@rollup/plugin-node-resolve": "^15.3.1", 36 | "@rollup/plugin-terser": "^0.4.4", 37 | "rollup": "^4.18.0" 38 | }, 39 | "dependencies": { 40 | "@rollup/plugin-json": "^6.1.0", 41 | "jsdom": "^26.0.0", 42 | "rollup-plugin-polyfill-node": "^0.13.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import { babel } from "@rollup/plugin-babel" 2 | import terser from "@rollup/plugin-terser" 3 | import commonjs from "@rollup/plugin-commonjs" 4 | import nodePolyfills from 'rollup-plugin-polyfill-node' 5 | import { nodeResolve } from '@rollup/plugin-node-resolve' 6 | import json from '@rollup/plugin-json' 7 | 8 | const globals = { 9 | "dayjs": "dayjs", 10 | "md5": "md5", 11 | "qs": "qs", 12 | "crypto-js": "crypto" 13 | } 14 | 15 | /** 16 | * amd - 异步模块加载,适用于 RequireJS 等模块加载器 17 | * cjs - CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs) 18 | * es - 将 bundle 保留为 ES 模块文件,适用于其他打包工具,以及支持 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | let proxy = new Proxy({}, { 2 | get: (target, key, receiver) => { 3 | return Reflect.get(target, key) 4 | }, 5 | set: (target, key, value, receiver) => { 6 | value = value.replace(/\s+/g, "") // 去除空格 7 | let result = Reflect.set(target, key, value, receiver) 8 | if (result) { 9 | Device.Info({ 10 | domain: 'https://www.skillnull.com', 11 | info: value && value.split(',') 12 | }).then(infoResult => { 13 | let infoHtml = [] 14 | for (let i in infoResult) { 15 | let value = infoResult[i] 16 | if (i === 'lunarDate') { 17 | value = `${infoResult[i].year} ${infoResult[i].chineseZodiac} ${infoResult[i].month}${infoResult[i].day}` 18 | } 19 | infoHtml.push( 20 | '
  • ' + 21 | ' ' + i + '' + 22 | ' :' + 23 | ' ' + value + '' + 24 | '
  • ') 25 | } 26 | document.querySelector('#info_box').innerHTML = '
      ' + infoHtml.join('') + '
    ' 27 | 28 | }) 29 | } else { 30 | throw new ReferenceError('something error') 31 | } 32 | return result 33 | } 34 | }) 35 | 36 | const getInfo = () => { 37 | proxy.value = document.querySelector('#info_input').value 38 | } 39 | 40 | const fork = () => { 41 | window.open('https://github.com/skillnull/DeviceJs') 42 | } 43 | 44 | const setTopDistance = () => { 45 | const title = document.querySelector('.title') 46 | const title_height = title.getBoundingClientRect().height 47 | const keyTipBox = document.querySelector('.content') 48 | keyTipBox.style.paddingTop = title_height + 'px' 49 | } 50 | 51 | setTopDistance() 52 | 53 | window.addEventListener('resize', () => { 54 | setTopDistance() 55 | }) 56 | --------------------------------------------------------------------------------