Google - Middle Click Search

Opens search results in new tab when you middle click

目前為 2019-10-20 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Google - Middle Click Search
// @namespace    https://gf.qytechs.cn/users/649
// @version      1.1.7
// @description  Opens search results in new tab when you middle click
// @author       Adrien Pyke
// @include      /^https?:\/\/www\.google\.[a-zA-Z]+\/?(?:\?.*)?$/
// @include      /^https?:\/\/www\.google\.[a-zA-Z]+\/search\/?\?.*$/
// @require      https://gitcdn.link/repo/fuzetsu/userscripts/b38eabf72c20fa3cf7da84ecd2cefe0d4a2116be/wait-for-elements/wait-for-elements.js
// @grant        GM_openInTab
// ==/UserScript==

(() => {
	'use strict';

	const setQueryParam = function(key, value, url = location.href) {
		const regex = new RegExp(`([?&])${key}=.*?(&|#|$)(.*)`, 'giu');
		const hasValue = typeof value !== 'undefined' && value !== null && value !== '';
		if (regex.test(url)) {
			if (hasValue) {
				return url.replace(regex, `$1${key}=${value}$2$3`);
			} else {
				const [path, hash] = url.split('#');
				url = path.replace(regex, '$1$3').replace(/(&|\?)$/u, '');
				if (hash) url += `#${hash[1]}`;
				return url;
			}
		} else if (hasValue) {
			const separator = url.includes('?') ? '&' : '?';
			const [path, hash] = url.split('#');
			url = `${path + separator + key}=${value}`;
			if (hash) url += `#${hash[1]}`;
			return url;
		} else return url;
	};

	const getUrl = function(value) {
		if (window.location.href.match(/^https?:\/\/www\.google\.[a-zA-Z]+\/search\/?\?.*$/u)) {
			return setQueryParam('q', encodeURIComponent(value));
		} else {
			return `${location.protocol}//${location.host}/search?q=${encodeURIComponent(value)}`;
		}
	};

	waitForElems({
		sel: '#_fZl',
		onmatch(btn) {
			const input = document.querySelector('#lst-ib');

			btn.onmousedown = e => {
				if (e.button === 1) {
					e.preventDefault();
				}
			};

			btn.onclick = e => {
				if (e.button === 1 && input.value.trim()) {
					e.preventDefault();
					e.stopImmediatePropagation();
					const url = getUrl(input.value);
					GM_openInTab(url, true);
					return false;
				}
			};

			btn.onauxclick = btn.onclick;
		}
	});

	waitForElems({
		sel: '.sbsb_b li .sbqs_c, .sbsb_b li .sbpqs_d',
		onmatch(elem) {
			elem.onclick = e => {
				if (e.button === 1) {
					e.preventDefault();
					e.stopImmediatePropagation();
					const text = elem.classList.contains('sbpqs_d')
						? elem.querySelector('span').textContent
						: elem.textContent;
					const url = getUrl(text);
					GM_openInTab(url, true);
					return false;
				}
			};
			elem.onauxclick = elem.onclick;
		}
	});
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址