UNPKG

hexo-theme-sukax

Version:

Modern, powerful and simple theme for Hexo

7 lines 4.56 kB
/*! * Hexo Theme Suka | lsloader.js * Patched by SukkaW on 2018/7/14 https://github.com/SukkaW * Created by EYHN on 2017/4/17. https://github.com/EYHN * From sexdevil/LSLoader https://github.com/sexdevil/LSLoader */ window.lsloader={jsRunSequence:[],jsnamemap:{},cssnamemap:{}},lsloader.removeLS=function(e){try{localStorage.removeItem(e)}catch(e){}},lsloader.setLS=function(e,s){try{localStorage.setItem(e,s)}catch(e){}},lsloader.getLS=function(e){var s="";try{s=localStorage.getItem(e)}catch(e){s=""}return s},versionString="/*"+(window.lsversion||"noVersion")+"*/",lsloader.clean=function(){try{for(var e=[],s=0;s<localStorage.length;s++)e.push(localStorage.key(s));e.forEach(function(e){var t=lsloader.getLS(e);window.oldVersion&&window.oldVersion.reduce(function(e,s){return e||-1!==t.indexOf("/*"+s+"*/")},!1)&&lsloader.removeLS(e)})}catch(e){}},lsloader.clean(),lsloader.load=function(e,s,t,n){var o;if("boolean"==typeof t&&(n=t,t=void 0),n=n||!1,t=t||function(){},(o=this.getLS(e))&&-1===o.indexOf(versionString))return this.removeLS(e),void this.requestResource(e,s,t,n);if(o){if(o.split(versionString)[0]!=s)return console.log("reload:"+s),this.removeLS(e),void this.requestResource(e,s,t,n);o=o.split(versionString)[1],n?(this.jsRunSequence.push({name:e,code:o}),this.runjs(s,e,o)):(document.getElementById(e).appendChild(document.createTextNode(o)),t())}else this.requestResource(e,s,t,n)},lsloader.requestResource=function(s,t,e,n){var o=this;n?this.iojs(t,s,function(e,s,t){o.setLS(s,e+versionString+t),o.runjs(e,s,t)}):this.iocss(t,s,function(e){document.getElementById(s).appendChild(document.createTextNode(e)),o.setLS(s,t+versionString+e)},e)},lsloader.iojs=function(s,t,e){var n=this;n.jsRunSequence.push({name:t,code:""});try{var o=new XMLHttpRequest;o.open("get",s,!0),o.onreadystatechange=function(){if(4==o.readyState){if((200<=o.status&&o.status<300||304==o.status)&&""!=o.response)return void e(s,t,o.response);n.jsfallback(s,t)}},o.send(null)}catch(e){n.jsfallback(s,t)}},lsloader.iocss=function(s,t,e,n){var o=this;try{var a=new XMLHttpRequest;a.open("get",s,!0),a.onreadystatechange=function(){if(4==a.readyState){if((200<=a.status&&a.status<300||304==a.status)&&""!=a.response)return e(a.response),void n();o.cssfallback(s,t,n)}},a.send(null)}catch(e){o.cssfallback(s,t,n)}},lsloader.iofonts=function(s,t,e,n){var o=this;try{var a=new XMLHttpRequest;a.open("get",s,!0),a.onreadystatechange=function(){if(4==a.readyState){if((200<=a.status&&a.status<300||304==a.status)&&""!=a.response)return e(a.response),void n();o.cssfallback(s,t,n)}},a.send(null)}catch(e){o.cssfallback(s,t,n)}},lsloader.runjs=function(e,s,t){if(s&&t)for(var n in this.jsRunSequence)this.jsRunSequence[n].name==s&&(this.jsRunSequence[n].code=t);if(this.jsRunSequence[0]&&this.jsRunSequence[0].code&&"failed"!=this.jsRunSequence[0].status)(o=document.createElement("script")).appendChild(document.createTextNode(this.jsRunSequence[0].code)),o.type="text/javascript",document.getElementsByTagName("head")[0].appendChild(o),this.jsRunSequence.shift(),0<this.jsRunSequence.length&&this.runjs();else if(this.jsRunSequence[0]&&"failed"==this.jsRunSequence[0].status){var o,a=this;(o=document.createElement("script")).src=this.jsRunSequence[0].path,o.type="text/javascript",this.jsRunSequence[0].status="loading",o.onload=function(){a.jsRunSequence.shift(),0<a.jsRunSequence.length&&a.runjs()},document.body.appendChild(o)}},lsloader.tagLoad=function(e,s){this.jsRunSequence.push({name:s,code:"",path:e,status:"failed"}),this.runjs()},lsloader.jsfallback=function(e,s){if(!this.jsnamemap[s]){for(var t in this.jsnamemap[s]=s,this.jsRunSequence)this.jsRunSequence[t].name==s&&(this.jsRunSequence[t].code="",this.jsRunSequence[t].status="failed",this.jsRunSequence[t].path=e);this.runjs()}},lsloader.cssfallback=function(e,s,t){if(!this.cssnamemap[s]){this.cssnamemap[s]=1;var n=document.createElement("link");n.type="text/css",n.href=e,n.rel="stylesheet",n.onload=n.onerror=t;var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(n,o)}},lsloader.runInlineScript=function(e,s){var t=document.getElementById(s).innerText;this.jsRunSequence.push({name:e,code:t}),this.runjs()},lsloader.css=function(e,s){void 0===window.lsLoadCSSMaxNums&&(window.lsLoadCSSMaxNums=0),window.lsLoadCSSMaxNums++,lsloader.load(e,s,function(){void 0===window.lsLoadCSSNums&&(window.lsLoadCSSNums=0),window.lsLoadCSSNums++,window.lsLoadCSSNums==window.lsLoadCSSMaxNums&&(document.documentElement.style.display="")},!1)},lsloader.js=function(e,s){lsloader.load(e,s,!0)};