Brings back the full URLs in results.
当前为
// ==UserScript==
// @name Google Search restore URLs (undo breadcrumbs)
// @namespace https://greasyfork.org/en/users/27283-mutationobserver
// @version 2020.01.16v8
// @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 (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;
}
</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");
}