Greasy Fork is available in English.
在简法主页上增加其他个性化设置
当前为
// ==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
// ==/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<aBoxLen;i++){
this.change(aBox[i]);
}
}
},
//monitor方法用于检错程序
monitor:function(){
this.init();
}
}
//启动主程序
settings.on();
})();