您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a button to search stackoverflow via Google Search
当前为
// ==UserScript== // @name Stack Overflow on Google Search // @version 2.0.4 // @description Adds a button to search stackoverflow via Google Search // @author Alexyoe // @namespace https://github.com/Alexyoe/stackoverflow-search-on-google.git // @include http*://www.google.*/search* // @include http*://google.*/search* // @run-at document-end // @license MIT // ==/UserScript== // Settings const iconVisible = true; const nameVisible = true; const btnPosition = "end"; // Start or End // Start Code const queryRegex = /q=[^&]+/g; const siteRegex = /\+site(?:%3A|\:).+\.[^&+]+/g; const stackoverflowUrl = "+site%3Astackoverflow.com"; let stackoverflowIcon = '<svg class="DCxYpf" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 384 512"><path d="M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"/></svg>'; const isImageSearch = /[?&]tbm=isch/.test(location.search); console.log(isImageSearch); if (typeof trustedTypes !== "undefined") { const policy = trustedTypes.createPolicy("html", { createHTML: (input) => input, }); stackoverflowIcon = policy.createHTML(stackoverflowIcon); } (function () { // Create the link element const el = document.createElement("a"); el.className = isImageSearch ? "NZmxZe" : "zItAnd FOU1zf GMT2kb"; // Add icon to the link if (iconVisible) { const span = document.createElement("span"); span.className = isImageSearch ? "m3kSL" : "mUKzod"; span.style.cssText = nameVisible ? "height:16px;width:16px;display:block" : "height:16px;width:16px;display:block;margin:auto"; span.innerHTML = stackoverflowIcon; el.appendChild(span); } // Create the div element for the text const link = document.createElement("div"); link.textContent = "Stack Overflow"; if (nameVisible) { el.appendChild(link); } // Add site:stackoverflow.com to the query el.href = window.location.href.replace(queryRegex, (match) => match.search(siteRegex) >= 0 ? match.replace(siteRegex, stackoverflowUrl) : match + stackoverflowUrl ); // Insert the link into Google search if (isImageSearch) { let menuBar = document.querySelector(".T47uwc"); menuBar.insertBefore(el, menuBar.children[menuBar.childElementCount - 1]); } else { let menuBar = document.querySelectorAll(".nfdoRb")[1]; switch (btnPosition) { case "start": menuBar.insertBefore(el, menuBar.children[0]); break; case "end": menuBar.appendChild(el); break default: menuBar.appendChild(el); break; } } // Fix Sizing const buttonBox = document.querySelector(".xhjkHe"); buttonBox.style.width = "auto"; })();