95 lines
2.5 KiB
JavaScript
95 lines
2.5 KiB
JavaScript
function getThemeJson(param) {
|
|
var xhr = null;
|
|
var url = "../css/theme/config.json?" + new Date();
|
|
if (param.url) {
|
|
url = param.url;
|
|
}
|
|
try {
|
|
xhr = new XMLHttpRequest();
|
|
} catch (error) {
|
|
console.error(error);
|
|
if (typeof param.error == "function") {
|
|
param.error(error);
|
|
}
|
|
return false;
|
|
}
|
|
var fn = function() {
|
|
var step = xhr.readyState;
|
|
var status = xhr.status;
|
|
if (step == 4) {
|
|
var data = xhr.responseText;
|
|
if (status == 200) {
|
|
if (typeof param.success == "function") {
|
|
param.success(data);
|
|
}
|
|
} else {
|
|
if (typeof param.error == "function") {
|
|
param.error();
|
|
}
|
|
}
|
|
if (typeof param.completed == "function") {
|
|
param.completed(data);
|
|
}
|
|
}
|
|
};
|
|
xhr.onreadystatechange = fn;
|
|
var s = param.async;
|
|
s === undefined && (s = true);
|
|
xhr.open("get", url, s);
|
|
xhr.send();
|
|
}
|
|
function setTheme(hreflist, datepickerFlag, ztreeFlag) {
|
|
var fnspace = (function() {
|
|
return {
|
|
init: function(theme, hreflist, datepickerFlag, ztreeFlag) {
|
|
// 加载时间插件主题样式
|
|
if (datepickerFlag) {
|
|
}
|
|
// 加载树插件主题样式
|
|
if (ztreeFlag) {
|
|
}
|
|
//加载页面主题样式文件
|
|
if (hreflist && hreflist.length > 0) {
|
|
for (var i = 0; i < hreflist.length; i++) {
|
|
this.addCSSFile(hreflist[i].replace("${theme}", theme));
|
|
}
|
|
}
|
|
},
|
|
addCSSFile: function(href) {
|
|
//引入css样式表
|
|
var link = {};
|
|
link.type = "text/css";
|
|
link.rel = "stylesheet";
|
|
link.href = href;
|
|
this.createLink(link);
|
|
},
|
|
createLink: function(obj) {
|
|
var link = document.createElement("link");
|
|
for (var key in obj) {
|
|
link[key] = obj[key];
|
|
}
|
|
document.getElementsByTagName("head")[0].appendChild(link);
|
|
}
|
|
};
|
|
})();
|
|
getThemeJson({
|
|
success: function(data) {
|
|
var d = JSON.parse(data);
|
|
var urlParam = decodeURIComponent(location.search);
|
|
var _temp = "";
|
|
if (urlParam.indexOf("theme") !== -1) {
|
|
var arr = urlParam.substr(urlParam.indexOf("theme")).split(/[\=\&]/g);
|
|
_temp = arr[1];
|
|
localStorage.setItem("theme", _temp);
|
|
} else {
|
|
_temp = d.theme;
|
|
}
|
|
var theme = _temp || localStorage.getItem("configTheme") || "light";
|
|
fnspace.init(theme, hreflist, datepickerFlag, ztreeFlag);
|
|
},
|
|
error: function() {
|
|
console.error("获取主题失败");
|
|
}
|
|
});
|
|
}
|