https://krait.cn/major/1747.html
详情访问
https://krait.cn/major/1747.html
由于 typecho 模板设置数据会在换模板的时候被清空,想那些每次配置数据的人自己都觉得很烦。所以自己写了一个非插件的处理方法,可以适合任何 typecho 的主题,超级兼容。
## 使用方法
需要找到自己主题下的```functions.php``` 在```themeConfig($form) ```函数里添加如下的JavaScript
**你应该知道怎么添加吧,注意格式哦**
再次之前还要引入
代码: 全选
<script type="text/javascript" src="./js/jquery.js"></script>
然后在引入,主要一定要严格按照顺序来。
代码: 全选
function backData() {
var newLocal= localStorage.backupData;
if (newLocal!= "" && newLocal!= undefined) {
var jsonData = JSON.parse(newLocal);
var data = jsonData;
for(var i in data){
switch (data[i].type) {
case "text":
$('#'+document.getElementsByName(data[i].name)[0].id).val(data[i].value);
break;
case "textarea":
$('#'+document.getElementsByName(data[i].name)[0].id).val(data[i].val);
break;
case "checkbox":
switch (data[i].checked) {
case 'true':
document.getElementById(data[i].id).checked = true;
break;
case 'false':
document.getElementById(data[i].id).checked = false;
break;
}
break;
case "radio":
switch (data[i].checked) {
case 'true':
$('#'+data[i].id).prop("checked","checked");
break;
case 'false':
$('#'+data[i].id).removeAttr("checked");
}
break;
}
}
}
}
function backupData() {
var json = [];
var inputs = $("input");
var textareas = $("textarea");
for (i = 0, len = inputs.length; i < len; i++) {
var j = {};
var input = inputs[i];
j.name = input.name;
j.type = input.type;
j.id = input.id;
switch (input.type){
case "text":
j.value = input.value;
break;
case "radio":
j.checked = ''+input.checked+'';
break;
case "checkbox":
j.checked = ''+input.checked+'';
break;
default:
}
json.push(j);
}
for (i = 0, len = textareas.length; i < len; i++) {
var j = {};
var textarea = textareas[i];
j.name = textarea.name;
j.type = 'textarea';
j.id = textarea.id;
j.val = $('#'+textarea.id).val();
json.push(j);
}
var dataUp = JSON.stringify(json);
localStorage.backupData = dataUp;
}
jQuery(function(){
$(".typecho-option-submit").append("<li><button type=\"button\" class=\"btn primary\" onclick=\"backupData()\">备份</button></li><li><button type=\"button\" class=\"btn primary\" onclick=\"backData()\">恢复</button></li>");
});
但是有些主题有很长啦啦的配置,每次修改后还要滑到底保存,这样用```position: fixed``` 强行固定在右侧,既方便有美观。
代码: 全选
<style>
.typecho-option-submit{
position: fixed !important;
bottom: 10px !important;
right: 30px !important;
}
.typecho-option-submit li{
display: inline;
margin-right: 5px;
}
</style>
## 最后
如果你觉得很实用,就留个评论点个赞呗!
不过既然发了这篇文章,就说明已经搞定了。