| /** |
| * 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); |