/** * aui-skin.js * @author 流浪男 * @todo more things to abstract, e.g. Loading css etc. * Licensed under the MIT license. * http://www.opensource.org/licenses/mit-license.php */ (function( window, undefined ) { "use strict"; var auiSkin = function(params) { this.extend(this.params, params); this._init(); }; var fileRef; auiSkin.prototype = { params: { name: "", //主题名字 skinPath: "",//主题路径 default: false, //默认是否立即使用 beginTime: "",//开始时间 endTime: ""//结束时间 }, _init: function() { var self = this; if(!self.params.name)return; if(!self.params.skinPath)return; fileRef = document.createElement('link'); fileRef.setAttribute("rel","stylesheet"); fileRef.setAttribute("type","text/css"); fileRef.setAttribute("aui-skin-name",self.params.name); fileRef.setAttribute("href",self.params.skinPath); if(self.params.default){ document.getElementsByTagName("head")[0].appendChild(fileRef); }else{ if(!self.params.beginTime || !self.params.endTime)return; if(!self.check(self.params.beginTime,self.params.endTime))return; var _date = new Date(); if(_date.getMinutes() < 10){ var nowM = "0"+_date.getMinutes(); }else{ var nowM = _date.getMinutes(); } var nowTime = _date.getHours()+":"+nowM; var b = parseInt(self.params.beginTime.replace(":", '')); var e = parseInt(self.params.endTime.replace(":", '')); var n = parseInt(nowTime.replace(":", '')); if(b > e){ if(n >= b || n <= e)self.setSkin(); }else if(b < e){ if(n >= b && n <= e)self.setSkin(); }else{ self.removeSkin(); } } }, setSkin:function(){ document.getElementsByTagName("head")[0].appendChild(fileRef); }, removeSkin:function(){ var self = this; if(document.querySelector("link[aui-skin-name='"+self.params.name+"']")) document.querySelector("link[aui-skin-name='"+self.params.name+"']").parentNode.removeChild(document.querySelector("link[aui-skin-name='"+self.params.name+"']")); }, check:function(beginTime,endTime){ var strb = beginTime.split (":"); if (strb.length != 2)return false; var stre = endTime.split (":"); if (stre.length != 2)return false; var b = new Date (); var e = new Date (); b.setHours (strb[0]); b.setMinutes (strb[1]); e.setHours (stre[0]); e.setMinutes (stre[1]); if(strb[0] > 24 || strb[0] < 0 || stre[0] > 24 || stre[0] < 0)return false; if(strb[1] > 59 || strb[1] < 0 || stre[1] > 59 || stre[1] < 0)return false; return true; }, extend: function(a, b) { for (var key in b) { if (b.hasOwnProperty(key)) { a[key] = b[key]; } } return a; } }; window.auiSkin = auiSkin; })(window);