您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在谷歌搜索页面顶部添加一个高级搜索表单
当前为
// ==UserScript== // @name Advanced Search Assistant for Google // @name:zh-CN Google 高级搜索助手 // @name:en Advanced Search Assistant for Google // @namespace http://tampermonkey.net/ // @version 0.1.1 // @description Add an advanced search form to the top of the page // @description:zh-CN 在谷歌搜索页面顶部添加一个高级搜索表单 // @description:en Add an advanced search form to the top of the page // @author shiquda // @namespace https://github.com/shiquda/shiquda_UserScript // @supportURL https://github.com/shiquda/shiquda_UserScript/issues // @match *://www.google.com/search* // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @license MIT // ==/UserScript== (function () { 'use strict'; const style = ` #advancedSearchToggleButton { margin-right: 10px; border: none; border-radius: 5px; background-color: #007bff; color: #fff; font-size: 14px; font-weight: bold; } #advancedSearchFormContainer { position: fixed; top: 130px; left: 40px; display: none; background: #fff; padding: 10px; border: 1px solid #ccc; border-radius: 5px; font-size: 14px; font-weight: bold; } #advancedSearchFormContainer label { display: block; margin-top: 5px; } #advancedSearchFormContainer input[type="text"] { margin-top: 5px; padding: 5px; border: 1px solid #ccc; border-radius: 5px; } #advancedSearchFormContainer select { margin-top: 5px; padding: 5px; border: 1px solid #ccc; border-radius: 5px; } #advancedSearchFormContainer button { border: none; border-radius: 5px; background-color: #007bff; color: #fff; font-size: 14px; font-weight: bold; margin: 20px; } ` GM_addStyle(style) // 创建按钮和表单元素 const toggleButton = document.createElement('button'); toggleButton.className = 'nfSF8e'; toggleButton.textContent = '高级搜索'; toggleButton.id = 'advancedSearchToggleButton' document.querySelector('.logo').appendChild(toggleButton); const formContainer = document.createElement('div'); formContainer.id = 'advancedSearchFormContainer' formContainer.addEventListener('click', function (event) { // Hide the form container when clicking outside of it if (!form.contains(event.target)) { formContainer.style.display = 'none'; } }); document.body.appendChild(formContainer); // 创建表单元素 const form = document.createElement('form'); formContainer.appendChild(form); const params = { 'as_q': '以下所有字词:', 'as_epq': '与以下字词完全匹配:', 'as_oq': '包含以下任意字词:', 'as_eq': '排除以下字词:', 'as_nlo': "包含的数字范围:从", 'as_nhi': "到:", // 'lr': '语言:', // 'cr': '地区:', // 'as_qdr': '最后更新时间:', 'as_sitesearch': '网站或域名:', // 'as_occt': '字词出现位置:', 'as_filetype': '文件类型:', // 'tbs': '使用权限:', }; for (const param in params) { const label = document.createElement('label'); label.textContent = params[param]; // 使用 params[param] 获取参数名称对应的中文解释 const input = document.createElement('input'); input.name = param; input.type = 'text'; form.appendChild(label); form.appendChild(input); form.appendChild(document.createElement('br')); } // 在原有代码的这个位置插入新代码 const timeOptions = { '': '请选择', 'd': '一天内', 'w': '一周内', 'm': '一月内', 'y': '一年内', }; const timeLabel = document.createElement('label'); timeLabel.textContent = '最后更新时间:'; const timeSelect = document.createElement('select'); timeSelect.name = 'as_qdr'; for (const key in timeOptions) { const option = document.createElement('option'); option.value = key; option.textContent = timeOptions[key]; timeSelect.appendChild(option); } form.appendChild(timeLabel); form.appendChild(timeSelect); form.appendChild(document.createElement('br')); const searchButton = document.createElement('button'); searchButton.textContent = '搜索'; searchButton.className = 'nfSF8e'; form.appendChild(searchButton); // Add a clear button to reset the form const clearButton = document.createElement('button'); clearButton.textContent = '清空'; clearButton.className = 'nfSF8e'; clearButton.addEventListener('click', function (event) { event.preventDefault(); form.reset(); }); form.appendChild(clearButton); // Load saved data and fill the form when opening a new page window.addEventListener('load', function () { for (const param in params) { const savedValue = GM_getValue(param); if (savedValue) { form[param].value = savedValue; } } }); // Save form data to Greasemonkey storage form.addEventListener('input', function () { for (const param in params) { GM_setValue(param, form[param].value); } }); // 在按钮点击时切换表单可见性 toggleButton.addEventListener('click', function (event) { event.preventDefault(); let status = formContainer.style.display; status = status === 'none' || status === '' ? 'block' : 'none'; formContainer.style.display = status; }); // 在表单提交时进行高级搜索 form.addEventListener('submit', function (event) { event.preventDefault(); const searchParams = new URLSearchParams(); for (const param in params) { const value = form[param].value; if (value) { searchParams.set(param, value); } } const searchUrl = 'https://www.google.com/search?' + searchParams.toString(); window.location.href = searchUrl; }); })();