Snavigation/js/set.js

1216 lines
36 KiB
JavaScript
Raw Normal View History

2022-03-21 08:42:56 +00:00
/*
作者:D.Young
主页https://yyv.me/
githubhttps://github.com/5iux/sou
日期2019-07-26
版权所有请勿删除
========================================
yeetime 修改
githubhttps://github.com/yeetime/sou2
日期2019-12-13
========================================
imsyy 二次修改
githubhttps://github.com/imsyy/sou2
日期2022-03-10
*/
// 默认搜索引擎列表
var se_list_preinstall = {
'1': {
id: 1,
title: "百度",
url: "https://www.baidu.com/s",
name: "wd",
icon: "iconfont icon-baidu",
},
'2': {
id: 2,
title: "必应",
url: "https://cn.bing.com/search",
name: "q",
icon: "iconfont icon-bing",
},
'3': {
id: 3,
title: "谷歌",
url: "https://www.google.com/search",
name: "q",
icon: "iconfont icon-google",
},
'4': {
id: 4,
title: "搜狗",
url: "https://www.sogou.com/web",
name: "query",
icon: "iconfont icon-sougousousuo",
},
'5': {
id: 5,
title: "360",
url: "https://www.so.com/s",
name: "q",
icon: "iconfont icon-360sousuo",
},
'6': {
id: 6,
title: "微博",
url: "https://s.weibo.com/weibo",
name: "q",
icon: "iconfont icon-xinlangweibo",
},
'7': {
id: 7,
title: "知乎",
url: "https://www.zhihu.com/search",
name: "q",
icon: "iconfont icon-zhihu",
},
'8': {
id: 8,
title: "Github",
url: "https://github.com/search",
name: "q",
icon: "iconfont icon-github",
},
'9': {
id: 9,
title: "BiliBili",
url: "https://search.bilibili.com/all",
name: "keyword",
icon: "iconfont icon-bilibilidonghua",
},
'10': {
id: 10,
title: "淘宝",
url: "https://s.taobao.com/search",
name: "q",
icon: "iconfont icon-taobao",
},
'11': {
id: 11,
title: "京东",
url: "https://search.jd.com/Search",
name: "keyword",
icon: "iconfont icon-jingdong",
}
};
// 默认快捷方式
var quick_list_preinstall = {
'1': {
2022-07-15 13:28:26 +00:00
title: "Vercel",
url: "https://vercel.com/",
2022-03-21 08:42:56 +00:00
},
'2': {
title: "GitHub",
url: "https://github.com/",
},
'3': {
2022-07-15 13:28:26 +00:00
title: "Cloudflare",
url: "https://dash.cloudflare.com/",
2022-03-21 08:42:56 +00:00
},
'4': {
2022-07-15 13:28:26 +00:00
title: "W3school",
url: "https://www.w3school.com.cn/",
2022-03-21 08:42:56 +00:00
},
'5': {
2022-07-15 13:28:26 +00:00
title: "腾讯云",
url: "https://console.cloud.tencent.com/",
2022-03-21 08:42:56 +00:00
},
'6': {
2022-07-15 13:28:26 +00:00
title: "阿里云",
url: "https://console.aliyun.com/",
},
'7': {
title: "百度网盘",
url: "https://pan.baidu.com/",
},
'8': {
title: "阿里云盘",
url: "https://www.aliyundrive.com/drive/",
},
'9': {
title: "Office",
url: "https://www.office.com/",
},
'10': {
title: "又拍云",
url: "https://console.upyun.com/",
},
'11': {
title: "CSDN",
url: "https://www.csdn.net/",
},
'12': {
title: "哔哩哔哩",
url: "https://www.bilibili.com/",
2022-03-21 08:42:56 +00:00
}
};
// 获取搜索引擎列表
function getSeList() {
var se_list_local = Cookies.get('se_list');
if (se_list_local !== "{}" && se_list_local) {
return JSON.parse(se_list_local);
} else {
setSeList(se_list_preinstall);
return se_list_preinstall;
}
}
// 设置搜索引擎列表
function setSeList(se_list) {
if (se_list) {
Cookies.set('se_list', se_list, {
expires: 36500
});
return true;
}
return false;
}
// 获得默认搜索引擎
function getSeDefault() {
var se_default = Cookies.get('se_default');
return se_default ? se_default : "1";
}
//背景图片
var bg_img_preinstall = {
"type": "2", // 1:使用主题默认的背景图片 2:关闭背景图片 3:使用自定义的背景图片
"path": "", //自定义图片
};
// 获取背景图片
function getBgImg() {
var bg_img_local = Cookies.get('bg_img');
if (bg_img_local && bg_img_local !== "{}") {
return JSON.parse(bg_img_local);
} else {
setBgImg(bg_img_preinstall);
return bg_img_preinstall;
}
}
// 设置背景图片
function setBgImg(bg_img) {
if (bg_img) {
Cookies.set('bg_img', bg_img, {
expires: 36500
});
return true;
}
return false;
}
// 设置-壁纸
//$('#bg').attr('src','https://api.dujin.org/bing/1920.php')
function setBgImgInit() {
var bg_img = getBgImg();
$("input[name='wallpaper-type'][value=" + bg_img["type"] + "]").click();
if (bg_img["type"] === "5") {
$("#wallpaper-url").val(bg_img["path"]);
$("#wallpaper-button").fadeIn(100);
$("#wallpaper_url").fadeIn(100);
} else {
$("#wallpaper_url").fadeOut(300);
$("#wallpaper-button").fadeOut(300);
}
switch (bg_img["type"]) {
case "1":
var pictures = new Array();
pictures[0] = './img/background1.webp';
pictures[1] = './img/background2.webp';
pictures[2] = './img/background3.webp';
pictures[3] = './img/background4.webp';
pictures[4] = './img/background5.webp';
pictures[5] = './img/background6.webp';
pictures[6] = './img/background7.webp';
pictures[7] = './img/background8.webp';
pictures[8] = './img/background9.webp';
pictures[9] = './img/background10.webp';
2022-03-22 12:29:15 +00:00
var rd = Math.floor(Math.random() * 10);
2022-03-21 08:42:56 +00:00
$('#bg').attr('src', pictures[rd]) //随机默认壁纸
break;
case "2":
$('#bg').attr('src', 'https://api.dujin.org/bing/1920.php') //必应每日
break;
case "3":
$('#bg').attr('src', 'https://api.ixiaowai.cn/gqapi/gqapi.php') //随机风景
break;
case "4":
$('#bg').attr('src', 'https://api.ixiaowai.cn/api/api.php') //随机二次元
break;
case "5":
$('#bg').attr('src', bg_img["path"]) //自定义
break;
}
}
// 搜索框高亮
function focusWd() {
2022-08-19 03:55:02 +00:00
$("body").addClass("onsearch");
2022-03-21 08:42:56 +00:00
}
// 搜索框取消高亮
function blurWd() {
2022-08-19 03:55:02 +00:00
$("body").removeClass("onsearch");
2022-03-21 08:42:56 +00:00
//隐藏输入
$(".wd").val("");
2022-07-15 13:28:26 +00:00
//隐藏搜索建议
$("#keywords").hide();
2022-03-21 08:42:56 +00:00
}
2022-07-15 13:28:26 +00:00
// 搜索建议提示
2022-03-21 08:42:56 +00:00
function keywordReminder() {
var keyword = $(".wd").val();
if (keyword != "") {
$.ajax({
url: 'https://suggestion.baidu.com/su?wd=' + keyword,
dataType: 'jsonp',
jsonp: 'cb', //回调函数的参数名(键值)key
success: function (data) {
//获取宽度
$("#keywords").css("width", $('.sou').width());
$("#keywords").empty().show();
$.each(data.s, function (i, val) {
2022-08-19 03:55:02 +00:00
$('#keywords').append(`<div class="keyword" data-id="${i + 1}"><i class='iconfont icon-sousuo'></i>${val}</div>`);
2022-03-21 08:42:56 +00:00
});
$("#keywords").attr("data-length", data.s["length"]);
2022-08-19 03:55:02 +00:00
$(".keyword").click(function () {
$(".wd").val($(this).text());
$("#search-submit").click();
});
2022-03-21 08:42:56 +00:00
},
error: function () {
$("#keywords").empty().show();
$("#keywords").hide();
}
})
} else {
$("#keywords").empty().show();
$("#keywords").hide();
}
}
// 搜索框数据加载
function searchData() {
var se_default = getSeDefault();
var se_list = getSeList();
var defaultSe = se_list[se_default];
if (defaultSe) {
$(".search").attr("action", defaultSe["url"]);
$("#icon-se").attr("class", defaultSe["icon"]);
$(".wd").attr("name", defaultSe["name"]);
}
// 判断窗口大小,添加输入框自动完成
// var wid = $("body").width();
// if (wid < 640) {
// $(".wd").attr('autocomplete', 'off');
// } else {
// $(".wd").focus();
// focusWd();
// }
}
// 搜索引擎列表加载
function seList() {
var html = "";
var se_list = getSeList();
for (var i in se_list) {
2022-08-19 03:55:02 +00:00
html += `<div class='se-li' data-url='${se_list[i]["url"]}' data-name='${se_list[i]["name"]}' data-icon='${se_list[i]["icon"]}'>
<a class='se-li-text'><i id='icon-sou-list' class='${se_list[i]["icon"]}'></i><span>${se_list[i]["title"]}</span></a></div>`;
2022-03-21 08:42:56 +00:00
}
$(".search-engine-list").html(html);
}
// 设置-搜索引擎列表加载
function setSeInit() {
var se_default = getSeDefault();
var se_list = getSeList();
var html = "";
for (var i in se_list) {
2022-08-19 03:55:02 +00:00
var tr = `<div class='se_list_div'><div class='se_list_num'>${i}</div>`;
2022-03-21 08:42:56 +00:00
if (i === se_default) {
2022-08-19 03:55:02 +00:00
tr = `<div class='se_list_div'><div class='se_list_num'>
<i class='iconfont icon-home'></i></div>`;
2022-03-21 08:42:56 +00:00
}
2022-08-19 03:55:02 +00:00
tr += `<div class='se_list_name'>${se_list[i]["title"]}</div>
<div class='se_list_button'>
<button class='set_se_default' value='${i}' style='border-radius: 8px 0px 0px 8px;'>
<i class='iconfont icon-home'></i></button>
<button class='edit_se' value='${i}'>
<i class='iconfont icon-xiugai'></i></button>
<button class='delete_se' value='${i}' style='border-radius: 0px 8px 8px 0px;'>
<i class='iconfont icon-delete'></i></button></div>
</div>`;
2022-03-21 08:42:56 +00:00
html += tr;
}
$(".se_list_table").html(html);
}
// 获取快捷方式列表
function getQuickList() {
var quick_list_local = Cookies.get('quick_list');
if (quick_list_local !== "{}" && quick_list_local) {
return JSON.parse(quick_list_local);
} else {
setQuickList(quick_list_preinstall);
return quick_list_preinstall;
}
}
// 设置快捷方式列表
function setQuickList(quick_list) {
if (quick_list) {
Cookies.set('quick_list', quick_list, {
expires: 36500
});
return true;
}
return false;
}
// 快捷方式数据加载
function quickData() {
var html = "";
var quick_list = getQuickList();
for (var i in quick_list) {
2022-08-19 03:55:02 +00:00
html += `<div class="quick">
<a href="${quick_list[i]['url']}" target="_blank">${quick_list[i]['title']}</a>
</div>`;
2022-03-21 08:42:56 +00:00
}
2022-08-19 03:55:02 +00:00
$(".quick-all").html(html + `<div class="quick"><a id="set-quick"><i class="iconfont icon-tianjia-"></i></a></div>`);
2022-03-21 08:42:56 +00:00
}
// 设置-快捷方式加载
function setQuickInit() {
var quick_list = getQuickList();
var html = "";
for (var i in quick_list) {
2022-08-19 03:55:02 +00:00
tr = `
<div class='quick_list_div'>
<div class='quick_list_div_num'>${i}</div>
<div class='quick_list_div_name'>${quick_list[i]['title']}</div>
<div class='quick_list_div_button'>
<button class='edit_quick' value='${i}' style='border-radius: 8px 0px 0px 8px;'>
<i class='iconfont icon-xiugai'></i></button>
<button class='delete_quick' value='${i}' style='border-radius: 0px 8px 8px 0px;'>
<i class='iconfont icon-delete'></i></button>
</div>
</div>`;
2022-03-21 08:42:56 +00:00
html += tr;
}
$(".quick_list_table").html(html);
}
/**
2022-08-19 03:55:02 +00:00
* 下载文本为文件
2022-03-21 08:42:56 +00:00
* @param filename 文件名
* @param text 内容
*/
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
// 打开设置
function openSet() {
$("#menu").addClass('on');
openBox();
//更改设置图标
$("#icon-menu").attr("class", "iconfont icon-home");
//隐藏书签打开设置
$(".mark").css({
"display": "none",
});
$(".set").css({
"display": "flex",
});
}
// 关闭设置
function closeSet() {
$("#menu").removeClass('on');
closeBox();
//更改设置图标
$("#icon-menu").attr("class", "iconfont icon-shezhi");
//隐藏设置
$(".set").css({
"display": "none",
});
// 刷新主页数据
seList();
quickData();
}
// 书签显示
function openBox() {
$("#content").addClass('box');
$(".mark").css({
"display": "flex",
});
//时间上移
$(".tool-all").css({
"transform": 'translateY(-160%)'
});
//背景模糊
$('#bg').css({
"transform": 'scale(1.08)',
"filter": "blur(10px)",
"transition": "ease 0.3s",
});
}
// 书签关闭
function closeBox() {
$("#content").removeClass('box');
$(".mark").css({
"display": "none",
});
//时间下移
$(".tool-all").css({
2022-08-23 08:21:53 +00:00
"transform": 'translateY(-120%)'
2022-03-21 08:42:56 +00:00
});
//背景模糊
$('#bg').css({
"transform": 'scale(1)',
"filter": "blur(0px)",
"transition": "ease 0.3s",
});
}
//显示设置搜索引擎列表
function showSe() {
$(".se_list").show();
$(".se_add_preinstall").show();
}
//隐藏设置搜索引擎列表
function hideSe() {
$(".se_list").hide();
$(".se_add_preinstall").hide();
}
//显示设置快捷方式列表
function showQuick() {
$(".quick_list").show();
$(".se_add_preinstalls").show();
}
//隐藏设置快捷方式列表
function hideQuick() {
$(".quick_list").hide();
$(".se_add_preinstalls").hide();
}
$(document).ready(function () {
// 搜索框数据加载
searchData();
// 搜索引擎列表加载
seList();
// 快捷方式数据加载
quickData();
// 壁纸数据加载
setBgImgInit();
// 点击事件
$(document).on('click', function (e) {
// 选择搜索引擎点击
if ($(".search-engine").is(":hidden") && $(".se").is(e.target) || $(".search-engine").is(":hidden") && $("#icon-se").is(e.target)) {
if ($(".se").is(e.target) || $("#icon-se").is(e.target)) {
//获取宽度
$(".search-engine").css("width", $('.sou').width() - 30);
//出现动画
$(".search-engine").slideDown(160);
}
} else {
if (!$(".search-engine").is(e.target) && $(".search-engine").has(e.target).length === 0) {
$(".search-engine").slideUp(160);
}
}
// 自动提示隐藏
if (!$(".sou").is(e.target) && $(".sou").has(e.target).length === 0) {
$("#keywords").hide();
}
});
// 时间点击
$("#time_text").click(function () {
if ($("#content").attr("class") === "box") {
closeBox();
closeSet();
2022-08-19 03:55:02 +00:00
blurWd();
2022-03-21 08:42:56 +00:00
} else {
openBox();
}
});
// 搜索引擎列表点击
$(".search-engine-list").on("click", ".se-li", function () {
var url = $(this).attr('data-url');
var name = $(this).attr('data-name');
var icon = $(this).attr('data-icon');
$(".search").attr("action", url);
$(".wd").attr("name", name);
$("#icon-se").attr("class", icon);
$(".search-engine").slideUp(160);
});
// 搜索引擎列表点击
$(".search-engine-list").on("click", ".se-li", function () {
var url = $(this).attr('data-url');
var name = $(this).attr('data-name');
var icon = $(this).attr('data-icon');
$(".search").attr("action", url);
$(".wd").attr("name", name);
$("#icon-se").attr("class", icon);
$(".search-engine").slideUp(160);
});
// 搜索框点击事件
2022-08-19 03:55:02 +00:00
$(document).on('click', '.sou', function () {
focusWd();
$(".search-engine").slideUp(160);
2022-08-19 03:55:02 +00:00
});
$(document).on('click', '.wd', function () {
2022-03-21 08:42:56 +00:00
focusWd();
keywordReminder();
$(".search-engine").slideUp(160);
2022-08-19 03:55:02 +00:00
});
2022-03-21 08:42:56 +00:00
// 点击其他区域关闭事件
2022-08-19 03:55:02 +00:00
$(document).on('click', '.close_sou', function () {
2022-03-21 08:42:56 +00:00
blurWd();
closeSet();
2022-08-19 03:55:02 +00:00
});
// 点击搜索引擎时隐藏自动提示
2022-08-19 03:55:02 +00:00
$(document).on('click', '.se', function () {
$('#keywords').toggle();
2022-08-19 03:55:02 +00:00
});
// 恢复自动提示
2022-08-19 03:55:02 +00:00
$(document).on('click', '.se-li', function () {
$('#keywords').show();
2022-08-19 03:55:02 +00:00
});
// 自动提示 (调用百度 api
2022-03-21 08:42:56 +00:00
$('.wd').keyup(function (event) {
var key = event.keyCode;
// 屏蔽上下键
var shieldKey = [38, 40];
if (shieldKey.includes(key)) return;
keywordReminder();
});
2022-07-15 13:28:26 +00:00
// 点击自动提示的搜索建议
$("#keywords").on("click", ".wd", function () {
2022-03-21 08:42:56 +00:00
var wd = $(this).text();
$(".wd").val(wd);
$(".search").submit();
//隐藏输入
$(".wd").val("");
$("#keywords").hide();
});
// 自动提示键盘方向键选择操作
2022-08-19 03:55:02 +00:00
$(".wd").keydown(function (event) { //上下键获取焦点
var key = event.keyCode;
if ($.trim($(this).val()).length === 0) return;
var id = $(".choose").attr("data-id");
if (id === undefined) id = 0;
if (key === 38) {
/*向上按钮*/
id--;
} else if (key === 40) {
/*向下按钮*/
id++;
} else {
return;
}
var length = $("#keywords").attr("data-length");
if (id > length) id = 1;
if (id < 1) id = length;
$(".keyword[data-id=" + id + "]").addClass("choose").siblings().removeClass("choose");
$(".wd").val($(".keyword[data-id=" + id + "]").text());
});
2022-03-21 08:42:56 +00:00
// 菜单点击
2022-08-19 03:55:02 +00:00
$("#menu").click(function () {
2022-03-21 08:42:56 +00:00
if ($(this).attr("class") === "on") {
closeSet();
} else {
openSet();
// 设置内容加载
setSeInit(); //搜索引擎设置
setQuickInit(); //快捷方式设置
}
});
// 快捷方式添加按钮点击
2022-03-22 12:29:15 +00:00
$("#set-quick").click(function () {
openSet();
2022-03-21 08:42:56 +00:00
2022-03-22 12:29:15 +00:00
// 设置内容加载
setSeInit(); //搜索引擎设置
setQuickInit(); //快捷方式设置
2022-03-21 08:42:56 +00:00
2022-03-22 12:29:15 +00:00
//添加快捷方式
$("#set-quick-menu").trigger('click');
$(".set_quick_list_add").trigger('click');
2022-03-21 08:42:56 +00:00
});
// 修改默认搜索引擎
$(".se_list_table").on("click", ".set_se_default", function () {
var name = $(this).val();
Cookies.set('se_default', name, {
expires: 36500
});
iziToast.show({
timeout: 8000,
message: '是否设置为默认搜索引擎?',
buttons: [
['<button>确认</button>', function (instance, toast) {
setSeInit();
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
message: '设置成功'
});
setTimeout(function () {
window.location.reload()
}, 1000);
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
}]
]
});
});
// 搜索引擎添加
$(".set_se_list_add").click(function () {
$(".se_add_content input").val("");
hideSe();
$(".se_add_content").show();
});
// 搜索引擎保存
$(".se_add_save").click(function () {
var key_inhere = $(".se_add_content input[name='key_inhere']").val();
var key = $(".se_add_content input[name='key']").val();
var title = $(".se_add_content input[name='title']").val();
var url = $(".se_add_content input[name='url']").val();
var name = $(".se_add_content input[name='name']").val();
//var icon = $(".se_add_content input[name='icon']").val();
var icon = "iconfont icon-wangluo";
var num = /^\+?[1-9][0-9]*$/;
if (!num.test(key)) {
iziToast.show({
timeout: 2000,
message: '序号 ' + key + ' 不是正整数'
});
return;
}
var se_list = getSeList();
if (se_list[key]) {
iziToast.show({
timeout: 8000,
message: '搜索引擎 ' + key + ' 已有数据,是否覆盖?',
buttons: [
['<button>确认</button>', function (instance, toast) {
se_list[key] = {
title: title,
url: url,
name: name,
icon: icon,
};
setSeList(se_list);
setSeInit();
$(".se_add_content").hide();
//显示列表
showSe();
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
message: '覆盖成功'
});
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
}]
]
});
return;
}
if (key_inhere && key !== key_inhere) {
delete se_list[key_inhere];
}
se_list[key] = {
title: title,
url: url,
name: name,
icon: icon,
};
setSeList(se_list);
setSeInit();
iziToast.show({
timeout: 2000,
message: '添加成功'
});
$(".se_add_content").hide();
showSe();
});
// 关闭表单
$(".se_add_cancel").click(function () {
$(".se_add_content").hide();
//显示列表
showSe();
});
// 搜索引擎修改
$(".se_list").on("click", ".edit_se", function () {
var se_list = getSeList();
var key = $(this).val();
$(".se_add_content input[name='key_inhere']").val(key);
$(".se_add_content input[name='key']").val(key);
$(".se_add_content input[name='title']").val(se_list[key]["title"]);
$(".se_add_content input[name='url']").val(se_list[key]["url"]);
$(".se_add_content input[name='name']").val(se_list[key]["name"]);
// $(".se_add_content input[name='icon']").val("iconfont icon-Earth");
//隐藏列表
hideSe();
$(".se_add_content").show();
});
// 搜索引擎删除
$(".se_list").on("click", ".delete_se", function () {
var se_default = getSeDefault();
var key = $(this).val();
if (key == se_default) {
iziToast.show({
message: '默认搜索引擎不可删除'
});
} else {
iziToast.show({
timeout: 8000,
message: '搜索引擎 ' + key + ' 是否删除?',
buttons: [
['<button>确认</button>', function (instance, toast) {
var se_list = getSeList();
delete se_list[key];
setSeList(se_list);
setSeInit();
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
message: '删除成功'
});
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
}]
]
});
}
});
// 恢复预设搜索引擎
$(".set_se_list_preinstall").click(function () {
iziToast.show({
timeout: 8000,
message: '现有搜索引擎数据将被清空',
buttons: [
['<button>确认</button>', function (instance, toast) {
setSeList(se_list_preinstall);
Cookies.set('se_default', 1, {
expires: 36500
});
setSeInit();
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
message: '重置成功'
});
setTimeout(function () {
window.location.reload()
}, 1000);
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
}]
]
});
});
// 设置-快捷方式添加
$(".set_quick_list_add").click(function () {
$(".quick_add_content input").val("");
$(".quick_add_content").show();
//隐藏列表
hideQuick();
});
// 设置-快捷方式保存
$(".quick_add_save").click(function () {
var key_inhere = $(".quick_add_content input[name='key_inhere']").val();
var key = $(".quick_add_content input[name='key']").val();
var title = $(".quick_add_content input[name='title']").val();
var url = $(".quick_add_content input[name='url']").val();
var img = $(".quick_add_content input[name='img']").val();
var num = /^\+?[1-9][0-9]*$/;
if (!num.test(key)) {
iziToast.show({
timeout: 2000,
message: '快捷方式 ' + key + ' 不是正整数'
});
return;
}
var quick_list = getQuickList();
if (quick_list[key]) {
iziToast.show({
timeout: 8000,
message: '快捷方式 " + key + " 已有数据,是否覆盖?',
buttons: [
['<button>确认</button>', function (instance, toast) {
quick_list[key] = {
title: title,
url: url,
img: img,
};
setQuickList(quick_list);
setQuickInit();
$(".quick_add_content").hide();
//显示列表
showQuick();
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
message: '覆盖成功'
});
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
}]
]
});
return;
}
if (key_inhere && key != key_inhere) {
delete quick_list[key_inhere];
}
quick_list[key] = {
title: title,
url: url,
img: img,
};
setQuickList(quick_list);
setQuickInit();
$(".quick_add_content").hide();
iziToast.show({
timeout: 2000,
message: '添加成功'
});
//显示列表
showQuick();
});
// 设置-快捷方式关闭添加表单
$(".quick_add_cancel").click(function () {
$(".quick_add_content").hide();
//显示列表
showQuick();
});
//恢复预设快捷方式
$(".set_quick_list_preinstall").click(function () {
iziToast.show({
timeout: 8000,
message: '快捷方式数据将被清空',
buttons: [
['<button>确认</button>', function (instance, toast) {
setQuickList(quick_list_preinstall);
setQuickInit();
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
timeout: 2000,
message: '重置成功'
});
2022-07-15 13:28:26 +00:00
// setTimeout(function () {
// window.location.reload()
// }, 1000);
2022-03-21 08:42:56 +00:00
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
}]
]
});
});
// 快捷方式修改
$(".quick_list").on("click", ".edit_quick", function () {
var quick_list = getQuickList();
var key = $(this).val();
$(".quick_add_content input[name='key_inhere']").val(key);
$(".quick_add_content input[name='key']").val(key);
$(".quick_add_content input[name='title']").val(quick_list[key]["title"]);
$(".quick_add_content input[name='url']").val(quick_list[key]["url"]);
$(".quick_add_content input[name='img']").val(quick_list[key]["img"]);
//隐藏列表
hideQuick();
$(".quick_add_content").show();
});
// 快捷方式删除
$(".quick_list").on("click", ".delete_quick", function () {
var key = $(this).val();
iziToast.show({
timeout: 8000,
message: '快捷方式 ' + key + ' 是否删除?',
buttons: [
['<button>确认</button>', function (instance, toast) {
var quick_list = getQuickList();
delete quick_list[key];
setQuickList(quick_list);
setQuickInit();
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
timeout: 2000,
message: '删除成功'
});
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
}]
]
});
});
// 壁纸设置
$("#wallpaper").on("click", ".set-wallpaper", function () {
var type = $(this).val();
var bg_img = getBgImg();
bg_img["type"] = type;
if (type === "1") {
$('#wallpaper_text').html("显示默认壁纸,刷新页面以生效");
setBgImg(bg_img);
iziToast.show({
message: '壁纸设置成功,刷新生效',
});
}
if (type === "2") {
$('#wallpaper_text').html("显示必应每日一图,每天更新,刷新页面以生效 | API @ 缙哥哥");
setBgImg(bg_img);
iziToast.show({
message: '壁纸设置成功,刷新生效',
});
}
if (type === "3") {
$('#wallpaper_text').html("显示随机风景图,每次刷新后更换,刷新页面以生效 | API @ 小歪");
setBgImg(bg_img);
iziToast.show({
message: '壁纸设置成功,刷新生效',
});
}
if (type === "4") {
$('#wallpaper_text').html("显示随机二次元图,每次刷新后更换,刷新页面以生效 | API @ 小歪");
setBgImg(bg_img);
iziToast.show({
message: '壁纸设置成功,刷新生效',
});
}
if (type === "5") {
$('#wallpaper_text').html("自定义壁纸地址,请输入正确地址,点击保存且刷新页面以生效");
$("#wallpaper_url").fadeIn(100);
$("#wallpaper-button").fadeIn(100);
$("#wallpaper-url").val(bg_img["path"]);
} else {
$("#wallpaper_url").fadeOut(300);
$("#wallpaper-button").fadeOut(300);
}
});
// 自定义壁纸设置保存
$(".wallpaper_save").click(function () {
var url = $("#wallpaper-url").val();
var reg = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$/;
if (!reg.test(url)) {
iziToast.show({
message: '请输入正确的链接',
});
} else {
var bg_img = getBgImg();
bg_img["type"] = "5";
bg_img["path"] = url;
setBgImg(bg_img);
iziToast.show({
message: '自定义壁纸设置成功,刷新生效',
});
}
});
// 我的数据导出
$("#my_data_out").click(function () {
var cookies = Cookies.get();
var json = JSON.stringify(cookies);
download("Snavigation-back-up-" + $.now() + ".json", json);
iziToast.show({
timeout: 2000,
message: '已导出备份文件至下载目录'
});
});
// 我的数据导入 点击触发文件选择
$("#my_data_in").click(function () {
$("#my_data_file").click();
});
// 选择文件后读取文件内容
$("#my_data_file").change(function () {
var selectedFile = document.getElementById('my_data_file').files[0];
//var name = selectedFile.name;//读取选中文件的文件名
//var size = selectedFile.size;//读取选中文件的大小
//console.log("文件名:"+name+" 大小:"+size);
var reader = new FileReader(); //这是核心,读取操作就是由它完成.
reader.readAsText(selectedFile); //读取文件的内容,也可以读取文件的URL
reader.onload = function () {
//当读取完成后回调这个函数,然后此时文件的内容存储到了result中,直接操作即可
//console.log(this.result);
// json 格式校验
var mydata;
try {
mydata = JSON.parse(this.result);
} catch (e) {
iziToast.show({
timeout: 2000,
message: '数据解析异常'
});
return;
}
if (typeof mydata != 'object') {
iziToast.show({
timeout: 2000,
message: '数据格式错误'
});
return;
}
iziToast.show({
timeout: 8000,
message: '当前数据将会被覆盖!是否继续导入?',
buttons: [
['<button>确认</button>', function (instance, toast) {
for (var key in mydata) {
Cookies.set(key, mydata[key], {
expires: 36500
});
}
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
iziToast.show({
timeout: 2000,
message: '导入成功'
});
setTimeout(function () {
window.location.reload()
}, 1000);
}, true],
['<button>取消</button>', function (instance, toast) {
instance.hide({
transitionOut: 'flipOutX',
}, toast, 'buttonName');
setTimeout(function () {
window.location.reload()
}, 1000);
}]
]
});
}
});
2022-08-19 03:55:02 +00:00
});