您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Brings back the full URLs in results.
当前为
// ==UserScript== // @name Google Search restore URLs (undo breadcrumbs) // @namespace https://greatest.deepsurf.us/en/users/27283-mutationobserver // @version 2020.01.20v9 // @description Brings back the full URLs in results. // @author MutationObserver // @match https://*.google.com/search?* // @include /^https?://(?:www|encrypted|ipv[46])\.google\.[^/]+/(?:$|[#?]|search|webhp)/ // @grant none // ==/UserScript== var results = document.querySelectorAll(".r"); if (navigator.userAgent.includes("Firefox/")) document.body.classList.add("url-restore-userscript-FIREFOX"); if (results) { var linkFontSize; var originalWidths = []; for (i=0; i < results.length; i++) { try { var dropdownArrow = results[i].querySelector('[aria-label="Result Options"]'); if (dropdownArrow) { dropdownArrow.parentElement.parentElement.parentElement.classList.add("url-restore-userscript-dropdownArrow"); } var oldWidth = results[i].offsetWidth; originalWidths.push(oldWidth); var link = results[i].querySelector(".r a").getAttribute("href"); var linkElemsAll = results[i].querySelectorAll("cite"); var linkElem = linkElemsAll[0]; linkElemsAll.forEach(function(e) { e.innerHTML = link; }); linkElem.innerHTML = link; if (!linkFontSize) linkFontSize = window.getComputedStyle(linkElem, null).getPropertyValue('font-size'); linkElem.setAttribute("data-full-link", link); } catch(e){ console.error(e, "Google Search restore URLs - ERROR on result #" + i); continue; } } setTimeout(function() { for (i=0; i < results.length; i++) { var linkElemsAll = results[i].querySelectorAll("cite"); var linkElem = linkElemsAll[0]; var currentWidth = linkElem.offsetWidth; if (currentWidth > (originalWidths[i] * 0.9)) { var link_truncated = linkTruncate(linkElem.innerHTML) linkElemsAll.forEach(function(e) { e.innerHTML = link_truncated; e.setAttribute("data-trunc-link", link_truncated); e.parentElement.setAttribute("onmouseover", 'linkTruncationState(this, "off")'); e.parentElement.setAttribute("onmouseout", 'linkTruncationState(this, "on")'); e.classList.add("url-restore-userscript-truncated"); }); results[i].classList.add("url-restore-userscript-truncated"); } } }, 100); document.querySelector("body").insertAdjacentHTML("afterbegin", ` <style id="url-restore-userscript"> .url-restore-userscript-HOVER .url-restore-userscript-dropdownArrow { position: absolute; } /* Firefox workaround (issue: some link <cites> are half-width) */ .url-restore-userscript-FIREFOX .url-restore-userscript-dropdownArrow { position: absolute; right: -2em; } .url-restore-userscript-FIREFOX cite { display: inline-block; width: max-content; } </style> `); } function linkTruncate(str) { if (str.length > 80) { return str.substr(0, 37) + '...' + str.substr(str.length-40, str.length); } return str; } window.linkTruncationState = function(elem, state) { elems = elem.parentElement.parentElement.querySelectorAll("cite"); switch(state) { case "off": var linkFull = elems[0].getAttribute("data-full-link"); elems.forEach(function(e) { e.innerHTML = linkFull; }); break; case "on": elems.forEach(function(e) { e.innerHTML = e.getAttribute("data-trunc-link"); }); break; } elems[0].parentElement.parentElement.parentElement.classList.toggle("url-restore-userscript-HOVER"); }