您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A userscript that toggles all expanders when one expander is shift-clicked
当前为
// ==UserScript== // @name GitHub Toggle Expanders // @version 1.1.0 // @description A userscript that toggles all expanders when one expander is shift-clicked // @license MIT // @author Rob Garrison // @namespace https://github.com/Mottie // @include https://github.com/* // @run-at document-idle // @icon https://github.com/fluidicon.png // ==/UserScript== (() => { "use strict"; function toggle(el, ctrlKeyPressed) { const stateNode = closest(".js-details-container", el), state = stateNode.classList.contains("open"), parentNode = closest(ctrlKeyPressed ? ".container, .js-discussion" : ".commits-listing, .discussion-item-body, .release-timeline-tags", stateNode ), containerNodes = parentNode.querySelectorAll(".js-details-container"); Array.from(containerNodes).forEach(node => { node.classList.toggle("open", state); }); } function closest(selector, el) { while (el && el.nodeType === 1) { if (el.matches(selector)) { return el; } el = el.parentNode; } return null; } document.body.addEventListener("click", event => { const target = event.target; if ( target && event.getModifierState("Shift") && target.matches(".js-details-target") ) { // give GitHub time to add the class setTimeout(() => { toggle(target, event.ctrlKey); }, 100); } }); })();