建立搜索引擎允许的语法上使我们更快找到自己所需要的内容!
À partir de
// ==UserScript==
// @name GoogleEasySearch
// @version 1.0
// @license MIT
// @description 建立搜索引擎允许的语法上使我们更快找到自己所需要的内容!
// @author 小乘字节
// @match *.google.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant none
// @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @namespace https://greasyfork.org/users/948036
// ==/UserScript==
(function() {
'use strict';
// 配置Google搜索语法
let dict = [{
"value": "intitle:",
"describe": "包含的标题"
}, {
"value": "intext:",
"describe": "包含的内容"
}, {
"value": "site:",
"describe": "指定网站"
}, {
"value": "index of /",
"describe": "网站目录"
}, {
"value": "inurl:",
"describe": "指定路径"
}, {
"value": "filetype:",
"describe": "文件类型"
}, {
"value": "related:",
"describe": "相似网站"
}, {
"value": "link:",
"describe": "查找外链"
}];
// 统一管理CSS样式 type: 1(下拉列表的父级元素)、2(下拉列表、dict)
function earySearchCSS(type, el) {
switch (type) {
case 1:
el.css({
"position": "absolute",
"top": 5,
"left": earySearchX
});
break;
case 2:
el.css({
"width": "100px",
"text-align": "center"
});
break;
}
}
let form = $("form[action='/search']");
let q = $("input[name='q']");
let earySearchX = form.width() + 50;
let earySearchY = form.offset().top;
let newValue = q.val();
// 添加相关元素
form.append("<div class='earySearch'></div>");
let earySearch = $("div.earySearch");
earySearchCSS(1, earySearch);
earySearch.prepend("<select class='earySearchDict'><option value='-1'>--请添加--</option></select>");
let earySearchDict = $(".earySearch .earySearchDict")
dict.map((data)=>{
earySearchDict.append(`<option value='${data.value}'>${data.describe}</option>`);
}
);
earySearchCSS(2, earySearchDict);
// 监听select元素
earySearchDict.change(function() {
if (this.value === "-1") {
return;
}
// 向搜索框添加内容
q.val(newValue.concat(" ", this.value));
// 1秒后重置选项
setTimeout(()=>{
this.value = "-1"
}, 1000);
});
// 获取键盘输入的内容
q.on("input", function() {
clearTimeout(this.myTimeOut)
let _this = this;
this.myTimeOut = setTimeout(()=>{
newValue = _this.value;
}, 300)
})
// 清空搜索框
let ariaLavels = [$("div[aria-label='清除']"),$("div[aria-label=' Clear']")];
ariaLavels.map((ariaLavel)=>{
console.log(ariaLavel);
ariaLavel.on('click', function() {
newValue = '';
})
});
})();