您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
从URL中提取q查询参数,填入对话框,提交搜索
// ==UserScript== // @name 给腾讯元宝网站添加q查询参数:yuanbao.tencent.com/?q={query} // @namespace http://tampermonkey.net/ // @version 2025.9.10 // @description 从URL中提取q查询参数,填入对话框,提交搜索 // @author smilingpoplar // @match https://yuanbao.tencent.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=yuanbao.tencent.com // @license MIT // 在网址跳转前获取参数q // @run-at document-start // ==/UserScript== (async () => { 'use strict'; const query = new URLSearchParams(window.location.search).get('q'); if (!query) return; const waitForElement = (selector, timeout = 5000) => { return new Promise((resolve, reject) => { const elem = document.querySelector(selector); if (elem) return resolve(elem); const timer = setTimeout(() => { observer.disconnect(); reject(`元素加载超时:${selector}`); }, timeout); const observer = new MutationObserver(() => { const elem = document.querySelector(selector); if (elem) { clearTimeout(timer); observer.disconnect(); resolve(elem); } }); observer.observe(document.documentElement, { childList: true, subtree: true }); }); }; const delay = (ms) => new Promise(res => setTimeout(res, ms)); const simulateInput = (elem, value) => { elem.textContent = value; elem.dispatchEvent(new InputEvent('input', { bubbles: true })); }; const simulateEnter = (elem, event = 'keydown') => { elem.dispatchEvent(new KeyboardEvent(event, { key: 'Enter', keyCode: 13, bubbles: true })); }; await waitForElement('.input-guide-v2', 3000); // 在.input-guide-v2出现前的对话会被清空,所以等它加载 const chat = await waitForElement('.ql-editor'); chat.focus(); await delay(100); simulateInput(chat, query); await delay(100); simulateEnter(chat); })();