manager.js 1.84 KB
var isSupportPWA=function(){var e="serviceWorker"in window.navigator,t="https:"===window.location.protocol,r=~["localhost","127.0.0.1"].indexOf(window.location.hostname);return e&&(t||r)}();function sendMessage(o){return new Promise(function(t,r){var e=new MessageChannel;e.port1.onmessage=function(e){e.data.error?r(e.data.error):t(e.data)};var n=navigator.serviceWorker.controller;if(!n)return r("Service worker未处于已激活状态, 请尝试刷新页面!");n.postMessage(o,[e.port2])})}function renderTable(e,t){var r=document.querySelector("#report"),n=r.querySelector("tbody"),o=function(e){n.innerHTML=e,r.style.visibility="visible"};return t?o("<tr><td class='no-record error' colspan='3'>"+t+"</td></tr>"):e.length?void o((e=e.filter(function(e){return!!e.size}).map(function(e){var t,r=e.lastModified,n=function(e){return 1===(e=String(e)).length&&(e="0"+e),e};return r=[r.getFullYear(),n(r.getMonth()+1),n(r.getDate())].join("-")+" "+[n(r.getHours()),n(r.getMinutes())].join(":"),t=Math.round(e.size/1024*10)/10,{name:e.pathname.substring(e.pathname.lastIndexOf("/")+1),title:e.url,size:~String(t).indexOf(".")?t:t+".0",date:r||"无"}})).reduce(function(e,r){return e+"<tr><td title='${title}'>${name}</td><td width='72px'>${size}</td><td width='125px'>${date}</td></tr>".replace(/\${(.*?)}/g,function(e,t){return r[t]})},"")):o("<tr><td class='no-record' colspan='3'>暂无记录!</td></tr>")}isSupportPWA&&navigator.serviceWorker.getRegistrations().then(function(e){if(!e.length)return renderTable([],"Service Worker尚未注册, 请注册后刷新该页面!");e.forEach(function(e){e.scope.match(/.*\/mobilemode\/mobile\/$/g)&&(document.querySelector("#btn").addEventListener("click",function(e){e.preventDefault(),sendMessage({command:"report"}).then(function(e){renderTable(e.data)}).catch(function(e){renderTable([],e)})}),document.querySelector("#btn").click())})});