您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Converts links containing redirects to their resolved version.
当前为
// ==UserScript== // @name RedRem // @namespace http://www.twprogrammers.com/ // @version 0.6 // @description Converts links containing redirects to their resolved version. // @author Patrick Thomas (Timberwolf) // @grant none // @include http://www.free-tv-video-online.info/* // @include http*://www.webmasterworld.com/* // @include http://www.researchgate.net/* // @include https://*.google.* // @exclude http://www.free-tv-video-online.info/player/* // ==/UserScript== var orig_page_links = document.links; var page_links = new Array(orig_page_links.length); var newlinkhref, pglh, query, queryEncoded, tArray, tkvArray, i; function cleanGoogle(e) { var a = anchorMatch(e.target); if(a && a.localName == "a") { var m = a.getAttribute("onmousedown"); var h = a.getAttribute("href"); if(m && m.indexOf("return") === 0) { a.removeAttribute("onmousedown"); } else if(h) { if(h.indexOf("http://") === 0) h = h.substr(h.indexOf("/", 7)); if(h.indexOf("/url?") === 0) { h = h.substr(5).toObj(); a.setAttribute('href', decodeURIComponent(h.url || h.q)); a.setAttribute('rel', 'noreferrer'); } } } } function anchorMatch(a) { for(; a; a = a.parentNode) if(a.localName == 'a') return a; return null; } function getQueryParams(qs) { query = {}; qs = qs.substring(qs.indexOf('?')+1); if(getContains("&", qs)) { tArray = qs.split("&"); for(i = 0; i < tArray.length; i++) { tkvArray = tArray[i].split("="); query[tkvArray[0]] = decodeURIComponent(tkvArray[1]); } } else { tkvArray = qs.split("="); query[tkvArray[0]] = decodeURIComponent(tkvArray[1]); } return query; } function getQueryParamsEncoded(qs) { queryEncoded = {}; qs = qs.substring(qs.indexOf('?')+1); if(getContains("&", qs)) { tArray = qs.split("&"); for(i = 0; i < tArray.length; i++) { tkvArray = tArray[i].split("="); queryEncoded[tkvArray[0]] = tkvArray[1]; } } else { tkvArray = qs.split("="); queryEncoded[tkvArray[0]] = tkvArray[1]; } return queryEncoded; } function getContains(needle, haystack) { return haystack.match(new RegExp(".*("+needle.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&")+").*", "i")); } function directify() { for (i=0; i < page_links.length; i++) { page_links[i] = orig_page_links[i]; } for (i=0; i < page_links.length; i++) { pglh = page_links[i].href; getQueryParams(pglh); getQueryParamsEncoded(pglh); if (getContains("free-tv-video-online.info/interstitial2.html", pglh)) { newlinkhref = query.lnk; console.log(page_links[i].href + " => " + newlinkhref); page_links[i].href = newlinkhref; } else if(pglh.match(/webmasterworld\.com(\/.*)?/i)) { newlinkhref = queryEncoded.url; console.log(page_links[i].href + " => " + newlinkhref); page_links[i].href = newlinkhref; } else if(getContains("www.researchgate.net/go.Deref.html", pglh)) { newlinkhref = query.url; console.log(page_links[i].href + " => " + newlinkhref); page_links[i].href = newlinkhref; } else if(getContains("google", document.location.href)) { addEventListener("mousedown", cleanGoogle, true); } } } directify();