您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
从URL中提取q查询参数,填入对话框,提交搜索
// ==UserScript== // @name 给知乎直答网站添加q查询参数:zhida.zhihu.com/?q={query} // @namespace http://tampermonkey.net/ // @version 2025.9.13 // @description 从URL中提取q查询参数,填入对话框,提交搜索 // @author smilingpoplar // @match https://zhida.zhihu.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=zhida.zhihu.com // @license MIT // ==/UserScript== (async () => { 'use strict'; const query = new URLSearchParams(window.location.search).get('q'); if (!query) return; const waitForElement = (selector) => { return new Promise((resolve) => { const elem = document.querySelector(selector); if (elem) return resolve(elem); const observer = new MutationObserver(() => { const elem = document.querySelector(selector); if (elem) { observer.disconnect(); resolve(elem); } }); observer.observe(document.body, { childList: true, subtree: true }); }); }; const delay = (ms) => new Promise(res => setTimeout(res, ms)); const simulateInput = (elem, value) => { document.execCommand('insertText', false, value); elem.dispatchEvent(new InputEvent('input', { bubbles: true })); }; const getReactProps = el => el[Object.keys(el).find(k => k.startsWith('__reactProps$'))]; const simulateEnter = (elem) => { getReactProps(chat)?.onKeyDown?.({ key: "Enter", code: "Enter", keyCode: 13, which: 13, preventDefault: () => { }, stopPropagation: () => { }, }); }; const chat = await waitForElement(".public-DraftEditor-content"); chat.focus(); await delay(100); simulateInput(chat, query); await delay(100); simulateEnter(chat); })();