// ==UserScript== // @name 简法主页功能增强 // @namespace http://tampermonkey.net/ // @version 0.7 // @description 在简法主页上增加其他个性化设置 // @author 那年那兔那些事 // @match https://www.jianfast.com // @icon https://s3.bmp.ovh/imgs/2021/08/2a5feb8f5f886e70.png // @downloadURL none // ==/UserScript== (function() { //settings对象为设置项 var settings={ searchEngine:true,//true:当前标签页打开搜索结果;false:新标签页打开搜索结果 bookMarks:true,//true:当前标签页打开书签网页;false:新标签页打开书签网页 //get方法获取settings对象属性 get:function(key){ return this[key]; }, //init方法初始化搜索引擎与书签的打开方式 init:function(){ if(this.searchEngine){ searchEngine.init(); } if(this.bookMarks){ bookMarks.init(); } console.log("简法主页功能增强:初始化完成"); }, //monitor方法用于检错、监控修改结果 monitor:function(){ var Timer=setInterval(function(){ if(settings.get("searchEngine")){ searchEngine.monitor(); } if(settings.get("bookMarks")){ bookMarks.monitor(); } },500); console.log("简法主页功能增强:检错程序启动(定时器ID:"+Timer+")"); }, //on方法用于启动整个程序 on:function(){ console.log("简法主页功能增强:主程序启动"); this.init(); this.monitor(); } } //searchEngine对象为搜索引擎项 var searchEngine = { //change方法用于改变搜索按钮类型,从而便于覆盖搜索打开方式 change: function() { var searchBtn = document.getElementById("search-btn"); searchBtn.type = "text"; }, //click方法用于覆盖原搜索按钮方法 click: function() { var searchBar = document.getElementById("search"); var url = searchBar.getAttribute("data-engine-start"); var val = searchBar.value; location.href = url + val; }, //enter方法用于覆盖原回车搜索方法 enter: function(event) { if (event.keyCode === 13) { var searchBtn=document.getElementById("search-btn"); searchBtn.click(); } }, //init方法用于初始化搜索引擎,覆盖新方法 init:function(){ searchEngine.change(); var searchBtn = document.getElementById("search-btn"); searchBtn.onclick=searchEngine.click; var searchBar = document.getElementById("search"); searchBar.onkeydown=searchEngine.enter; }, //monitor方法用于检错、监控修改结果,若出错则调用init方法重新覆盖 monitor:function(){ var searchBtn = document.getElementById("search-btn"); var searchBar = document.getElementById("search"); if(searchBtn.type!=="text"||searchBtn.onclick===null||searchBar.onkeydown===null){ this.init(); } } } var bookMarks={ //change方法用于改变书签打开方式 change:function(Obj){ if(Obj.target!==""){ Obj.target=""; } }, //init方法用于遍历书签并调用change方法改变打开方式 init:function(){ var siteBox=document.getElementById("site-box"); var aBox,aBoxLen; try{ aBox=siteBox.children; aBoxLen=aBox.length; }catch(e){ aBox=null; aBoxLen=0; } if(aBoxLen>0){ for(let i=0;i