// ==UserScript== // @name GoogleEasySearch // @version 2.3 // @license MIT // @description 建立搜索引擎允许的语法上使我们更快找到自己所需要的内容! // @author 小乘字节 // @match *.google.com/* // @include http*://www.google.*/* // @icon https://www.google.com/s2/favicons?sz=64&domain=google.com // @grant none // @require http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js // @namespace http://t.csdn.cn/D9iH7 // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 配置Google搜索语法 let dict = [ { "value": "AND ", "describe": "并且" }, { "value": "OR ", "describe": "或者" }, { "value": "intitle:", "describe": "标题包含" }, { "value": "intext:", "describe": "内容包含" }, { "value": "site:", "describe": "指定网站" }, { "value": "index of /", "describe": "网站目录" }, { "value": "inurl:", "describe": "指定路径" }, { "value": "filetype:", "describe": "文件类型" }, { "value": "similar to ", "describe": "相似网站" }, { "value": "alternative to ", "describe": "相似软件" }, { "value": "link:", "describe": "查找外链" }, { "value": "define ", "describe": "词的意思" }, { "value": "weather:", "describe": "查询天气" }, { "value": "movie:", "describe": "电影信息" }, { "value": "stocks:", "describe": "查询股票" } ]; let q = jQuery("input[name='q']"); let form = q.parent().parent().parent().parent().parent().parent().filter("form"); let RNNXgb = form.find("div.RNNXgb"); let earySearchX = RNNXgb.offset().left+RNNXgb.width()+10; let newValue = q.val(); let logo = form.find("div.logo"); let sfbg = jQuery("div.sfbg"); jQuery("head").append(jQuery(``)); // 添加相关元素 RNNXgb.before(`
模糊匹配【*】、精确匹配【" "】、过滤【-】、包含【+】、范围【..】
`); sfbg.height(sfbg.height()+20); logo.css("top", form.find(".easySearchText").height()+"px"); form.append(`
`); let earySearch = form.find("div.earySearch"); let earySearchDict = earySearch.find(".earySearchDict"); dict.map((data)=>{ earySearchDict.append(``); }); form.css({ "position": "relative" }); // 监听select元素 earySearchDict.change(function() { let index = this.selectedIndex; if (index === 0) { return; }else if(index === 1){ window.location.href = this.value; return; } // 向搜索框添加内容 q.val(newValue.concat(" ", this.value)); q.focus(); // 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 = [jQuery("div[aria-label='清除']"), jQuery("div[aria-label=' Clear']")]; ariaLavels.map((ariaLavel)=>{ ariaLavel.on('click', function() { newValue = ''; }); }); })();