您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
在简法主页上增加其他个性化设置
当前为
// ==UserScript== // @name 简法主页功能增强 // @namespace http://tampermonkey.net/ // @version 0.2 // @description 在简法主页上增加其他个性化设置 // @author 那年那兔那些事 // @include *://*.jianfast.com/* // @icon https://s3.bmp.ovh/imgs/2021/08/2a5feb8f5f886e70.png // @grant none // ==/UserScript== (function() { //创建设置列表 var SettingsFn = function() { this.Options = { "EngineOnCurrentTab": true, //搜索引擎是否从当前标签页打开网页 "BookmarkOnCurrentTab": true, //点击书签是否从当前标签页打开网页 "AddNewSearchEngine": true, //是否添加新搜索引擎 "Engine": "", }; } //为SettingsFn添加新方法 SettingsFn.prototype = { //get方法获取设置列表 get: function(key) { return this.Options[key]; }, //set方法为设置类别修改属性 set: function(key, value) { this.Options[key] = value; } } //创建Settings var Settings = new SettingsFn(); //创建新搜索引擎列表 var EnginesFn = function() { this.NewEngineList = [{ "Name": "夸克", "Url": "https://quark.sm.cn/s?q=", "Img": "https://gss3.bdstatic.com/84oSdTum2Q5BphGlnYG/timg?wapp&quality=80&size=b150_150&subsize=20480&cut_x=0&cut_w=0&cut_y=0&cut_h=0&sec=1369815402&srctrace&di=dfe458fc945b48a3ba59df62e2012e66&wh_rate=null&src=http%3A%2F%2Fimgsrc.baidu.com%2Fforum%2Fpic%2Fitem%2Ff7246b600c33874451939b645e0fd9f9d72aa050.jpg" }];//格式:在[]内前一个{}后面加英文“,”,然后再按照下列格式在“,”后添加新搜索引擎:{“Name”:搜索引擎名字,"Url":搜索引擎URL,"Img":搜索引擎图标} } //为EnginesFn添加新方法 EnginesFn.prototype = { //get方法获得新搜索引擎列表 get: function() { return this.NewEngineList; }, //set方法可以为NewEngineList添加NewEngine set: function(Name, Url, Img) { var len = this.NewEngineList.length; var newEngine = { "Name": Name, "Url": Url, "Img": Img }; this.NewEngineList[len] = newEngine; }, //search方法从新搜索引擎列表中按key搜索出相应部分 search: function(key) { var len; if (typeof key === "string") { len = this.NewEngineList.length; var res = -1; if (len !== 0) { for (let i = 0; i < len; i++) { if (this.NewEngineList[i].Name === key) { res = i; } } } return res; } else if (typeof key === "number") { len = this.NewEngineList.length; if (key < len) { return this.NewEngineList[key]; } else { return this.NewEngineList[len - 1]; } } else { return -1; } }, //change方法能改变打开网页方式 change: function() { var SearchBtn = document.getElementById("search-btn"); if (SearchBtn.name !== "newSearchBtn") { SearchBtn.onclick = function() { var searchOBJ = document.getElementById("search"); var newURL = searchOBJ.getAttribute("data-engine-start") + searchOBJ.value; location.href = newURL; } SearchBtn.name = "newSearchBtn"; } }, select: function(Name, Url, Img, Flag) { var SearchType = document.getElementById("search-type"); var Search = document.getElementById("search"); var SearchMenu = document.getElementById("search-menu"); if ((SearchType !== null) && (Search !== null) && (SearchMenu !== null)) { SearchType.style.backgroundImage = "url(" + Img + ")"; Search.setAttribute("data-engine-start", Url); SearchMenu.style.display = "none"; localStorage.setItem("Engine", Name); localStorage.setItem("searchType", Flag); } }, //create方法创建新搜索引擎列表 create: function(Name, Url, Img) { var newEngine = document.createElement("div"); newEngine.setAttribute("class", "search-engine"); newEngine.setAttribute("data-engine-start", Url); newEngine.setAttribute("data-engine-end", ""); newEngine.innerHTML = "<img src=" + Img + "><span>" + Name + "</span>"; newEngine.onclick = function() { Engines.select(Name, Url, Img, "0"); }; return newEngine; }, //add方法能在原搜索引擎列表中添加新搜索引擎 add: function() { var MenuObj = document.getElementById("search-menu"); var List = Engines.get(); if (MenuObj !== null) { if (MenuObj.name !== "newEngine") { if (List.length !== 0) { for (let i = 0; i < List.length; i++) { var NewEngine = Engines.create(List[i].Name, List[i].Url, List[i].Img); MenuObj.appendChild(NewEngine); } MenuObj.name = "newEngine"; } } } }, init: function(L) { var MenuObj = document.getElementById("search-menu"); var Name; var Url; var Img; var nameList=[]; var urlList=[]; var imgList=[]; if (MenuObj !== null) { for (let i = 0; i < L; i++) { var MenuChild = MenuObj.children[i]; //Name = MenuChild.innerText; //Url = MenuChild.getAttribute("data-engine-end"); //Img = MenuChild.children[0].src; nameList[i] = MenuChild.innerText; urlList[i] = MenuChild.getAttribute("data-engine-start"); imgList[i] = MenuChild.children[0].src; MenuChild.onclick = function() { console.log("i:"+i); //Engines.select(nameList[i],urlList[i], imgList[i], i.toString()); var SearchType = document.getElementById("search-type"); var Search = document.getElementById("search"); var SearchMenu = document.getElementById("search-menu"); if ((SearchType !== null) && (Search !== null) && (SearchMenu !== null)) { SearchType.style.backgroundImage = "url(" + imgList[i] + ")"; Search.setAttribute("data-engine-start", urlList[i]); SearchMenu.style.display = "none"; localStorage.setItem("Engine", nameList[i]); localStorage.setItem("searchType", i.toString()); } } } } var SelectEngine = localStorage.getItem("Engine"); if(SelectEngine===null){ SelectEngine = Settings.get("Engine"); } var SearchRes = Engines.search(SelectEngine); if (SearchRes !== -1) { var SearchType = document.getElementById("search-type"); var newEngineList = Engines.get(); Name = newEngineList[SearchRes].Name; Url = newEngineList[SearchRes].Url; Img = newEngineList[SearchRes].Img; Engines.select(Name, Url, Img, "0"); } } } //创建Engines var Engines = new EnginesFn(); //创建书签 var Bookmarks = { //为Bookmarks添加change方法,能改变书签打开方式 change: function() { var bookmarksOBJ = document.getElementsByClassName("site-wrap-a siteA siteAs"); if (bookmarksOBJ.length !== 0) { for (let i = 0; i < bookmarksOBJ.length; i++) { bookmarksOBJ[i].target = "_self"; } } } } //通过定时器修改网页数据 var TimerID = setInterval(function() { var bookmarksOBJ = document.getElementsByClassName("site-wrap-a siteA siteAs"); var searchType = document.getElementById("search-type"); var searchMenu = document.getElementById("search-menu"); var searchOBJ = document.getElementById("search"); var SearchBtn = document.getElementById("search-btn"); if ((bookmarksOBJ !== null) && (searchType !== null) && (searchMenu !== null) && (searchOBJ !== null) && (SearchBtn !== null)) { clearTimeout(TimerID); TimerID = -1; console.log("释放定时器!"); Engines.init(searchMenu.children.length); if (Settings.get("EngineOnCurrentTab")) { Engines.change(); } if (Settings.get("BookmarkOnCurrentTab")) { Bookmarks.change(); } if (Settings.get("AddNewSearchEngine")) { Engines.add(); } } }, 200); console.log("定时器:"+TimerID); //2s超时结束定时 setTimeout(function() { if (TimerID !== -1) { clearTimeout(TimerID); console.log("2s超时释放定时器!"); } }, 2000); })();