// ==UserScript==
// @name [kesai]google搜索选项扩展
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 增加了快捷设置文件类型过滤搜索和网站过滤搜索
// @author kesai
// @match https://www.google.com/*
// @match https://www.google.co.jp/*
// @match https://www.google.com.hk/*
// @require https://code.jquery.com/jquery-3.3.1.min.js
// @grant none
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
let fileExtArray = ['doc', 'pdf', 'xls', 'ppt', 'rtf', 'kml'];
function initMenus() {
initfileType();
initSiteFilter();
}
function initfileType() {
$(".hdtb-mn-cont").append($(''));
var div = $('
');
$(".hdtb-mn-cont").append(div);
let ul = $('');
var i = 1;
fileExtArray.forEach(function(fileExt) {
var id = "li_" + i;
//debugger;
var li = $('' + fileExt + '');
ul.append(li)
i++;
})
$(".hdtb-mn-cont").append(ul);
div.bind("click", function() {
if (ul.css("display") === "block") ul.css("display", "none");
else
ul.css("display", "block")
});
var regex = /filetype:[a-zA-Z]{3}/i;
var isExistFileTypeReg = /filetype:*/i;
ul.find("li").bind("click", function() {
var str = $(".gLFyf.gsfi").val();
var filetype = "filetype:" + $(this).text();
if (isExistFileTypeReg.test(str)) {
var regex = /filetype:[a-zA-Z]{1,4}/i;
if (regex.test(str)) $(".gLFyf.gsfi").val(str.replace(regex, filetype));
} else {
$(".gLFyf.gsfi").val($(".gLFyf.gsfi").val() + " " + filetype);
}
ul.css("display", "none");
$(".Tg7LZd").trigger("click");
});
}
function initSiteFilter() {
$(".hdtb-mn-cont").append($(''));
var div = $('');
$(".hdtb-mn-cont").append(div);
let ul = $('');
$(".hdtb-mn-cont").append(ul);
div.bind("click", function() {
if (ul.css("display") === "block") ul.css("display", "none");
else
ul.css("display", "block")
});
$("#btn_site_OK").bind("click", function() {
var url = $("#input_site").val();
//没有进行正则表达式的验证
$(".gLFyf.gsfi").val($(".gLFyf.gsfi").val() + " " + "site:" + url);
$(".Tg7LZd").trigger("click");
ul.css("display", "none");
});
}
$(function() {
//initMenus();
setTimeout(function() { initMenus(); }, 2000);
})
})();