您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Don't be evil::revert google search results to older style
当前为
- // ==UserScript==
- // @name Better Google
- // @namespace google
- // @version 0.1.16.5
- // @description Don't be evil::revert google search results to older style
- // @author aligo, adambh, tejaslodaya, drwonky, yut23
- // @license MIT
- // @supportURL https://github.com/aligo/better-google
- // @match https://*.google.com/search?*
- // @include /^https?://(?:www|encrypted|ipv[46])\.google\.[^/]+/(?:$|[#?]|search|webhp)/
- // @grant none
- // @run-at document-start
- // ==/UserScript==
- (function() {
- 'use strict';
- var betterGoogleRow = function(el) {
- var tbwUpd = el.querySelectorAll('.TbwUpd');
- if (tbwUpd.length > 0) {
- /* Google does A/B testing on the search results page, so the
- * structure of the page is not always the same. This code
- * tries to find the link element in a few different ways.
- * If it can't find it, it just gives up and doesn't do
- * anything.
- */
- var selectors = [
- '.yuRUbf > a',
- '.yuRUbf > div > a',
- '.yuRUbf > div > span > a',
- ];
- for (const selector of selectors) {
- var linkEl = el.querySelector(selector);
- if (linkEl) {
- break;
- }
- }
- var addEl = linkEl.nextSibling;
- if (!addEl) {
- // try the parent's sibling, for the span case
- addEl = linkEl.parentElement.nextSibling;
- }
- var betterAddEl = document.createElement('div');
- betterAddEl.className = 'btrAdd';
- if (addEl) {
- // this loop moves the "More options" button into betterAddEl
- for (var i = 0; i < addEl.children.length; i++) {
- var _el = addEl.children[i];
- if (_el.className.indexOf('TbwUpd') == -1) {
- betterAddEl.appendChild(_el);
- }
- }
- } else {
- // entry isn't fully loaded yet
- betterAddEl.remove();
- return;
- }
- var betterEl = document.createElement('div');
- betterEl.className = 'btrG';
- betterEl.appendChild(betterAddEl);
- el.appendChild(betterEl);
- var urlEl = document.createElement('a');
- urlEl.href = linkEl.href;
- urlEl.target = '_blank';
- urlEl.className = 'btrLink';
- var urlCiteEl = document.createElement('cite');
- urlCiteEl.innerText = linkEl.href;
- urlCiteEl.className = 'iUh30 bc';
- urlEl.appendChild(urlCiteEl);
- var maxWidth = el.clientWidth - betterAddEl.offsetWidth - 10;
- betterEl.insertBefore(urlEl, betterAddEl);
- if (urlEl.offsetWidth > maxWidth) {
- urlEl.style.width = maxWidth.toString() + 'px';
- }
- var aboutResult = el.querySelectorAll('.csDOgf');
- if (aboutResult.length > 0) {
- betterEl.appendChild(aboutResult[0]);
- }
- tbwUpd.forEach(function(el) { el.remove() });
- linkEl.querySelector('br:first-child').remove();
- }
- }
- var prevResultCount = 0;
- var bettered = false;
- var runBetterGoogle = function() {
- if (prevResultCount != document.querySelectorAll('.g .yuRUbf').length) {
- document.querySelectorAll('.g .yuRUbf').forEach(betterGoogleRow);
- prevResultCount = document.querySelectorAll('.g .yuRUbf').length;
- }
- if ( !bettered ) {
- if ( MutationObserver != undefined ) {
- var searchEl = document.getElementById('rcnt');
- var observer = new MutationObserver(runBetterGoogle);
- observer.observe(searchEl, {childList: true, subtree: true});
- }
- bettered = true;
- }
- };
- var prepareStyleSheet = function() {
- // if dark mode is enabled (either manually or by device default),
- // Google adds a meta tag to the document which we can check
- var link_color = '#006621';
- var meta_color_scheme = document.querySelector('meta[name="color-scheme"]');
- if (meta_color_scheme != undefined && meta_color_scheme.content == 'dark') {
- // use a lighter green in dark mode
- link_color = '#40965b';
- }
- var style = document.createElement('style');
- style.setAttribute('media', 'screen');
- style.appendChild(document.createTextNode(''));
- document.head.appendChild(style);
- style.sheet.insertRule(`:root { --btrG-link-color: ${link_color}; }`);
- style.sheet.insertRule('.btrG { word-break: normal; line-height: 18px; }');
- style.sheet.insertRule('.btrG .btrAdd { display: inline-block; vertical-align: top; line-height: 0; }');
- style.sheet.insertRule('.btrG .btrLink { display: inline-block; vertical-align: top; line-height: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none !important; color: var(--btrG-link-color); }');
- style.sheet.insertRule('.btrG .btrLink cite.iUh30 { color: var(--btrG-link-color); font-size: 16px; }');
- // remove extra space used for new multiline link info card
- style.sheet.insertRule('.yuRUbf h3.DKV0Md { margin-top: 0px; }');
- };
- var checkElementThenRun = function(selector, func) {
- var el = document.querySelector(selector);
- if ( el == null ) {
- if (window.requestAnimationFrame != undefined) {
- window.requestAnimationFrame(function(){ checkElementThenRun(selector, func)});
- } else {
- document.addEventListener('readystatechange', function(e) {
- if (document.readyState == 'complete') {
- func();
- }
- });
- }
- } else {
- func();
- }
- }
- checkElementThenRun('head', prepareStyleSheet);
- checkElementThenRun('#rcnt', runBetterGoogle);
- })();