您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
報導者網站使用者介面調整
// ==UserScript== // @name 報導者優蛇 // @description 報導者網站使用者介面調整 // @version 1.0.0 // @license MIT // @author bootleq // @namespace bootleq.com // @homepageURL https://github.com/bootleq/user-scripts // // @match https://www.twreporter.org/* // @run-at document-idle // @grant none // @noframes // ==/UserScript== const gSearchBarSelector = 'input[type="search"][class^="search-bar"]'; const gSearchBarObserveTimeout = 9000; // 偵測搜尋框時,超過此時間即不再偵測 (ms) // 不要自動 focus 搜尋框 // 相關 PR: https://github.com/twreporter/twreporter-npm-packages/pull/614 const noAutoFocusSearchBar = () => { const $active = document.activeElement; // 一開始就 focus 的場合,直接 blur 即可 if ($active.matches(gSearchBarSelector)) { $active.blur(); return; } const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { mutation.addedNodes.forEach(node => { if (node.nodeType === Node.ELEMENT_NODE) { const bar = node.matches(gSearchBarSelector) ? node : node.querySelector(gSearchBarSelector); if (bar) { bar.blur(); } } }); } } }); observer.observe( document.body, { childList: true, subtree: true } ); setTimeout(() => observer.disconnect(), gSearchBarObserveTimeout); }; noAutoFocusSearchBar();