您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
remove google search and image link redirection to speed up your browsing and hide referrer
当前为
- // ==UserScript==
- // @name Google direct Link
- // @namespace http://userscripts.org/users/tommy
- // @author .
- // @description remove google search and image link redirection to speed up your browsing and hide referrer
- // @include *google.*/*
- // @exclude *userscripts.org*
- // @version 1.0.1
- // @run-at document-start
- // ==/UserScript==
- var hideReferer = true,
- newTab = true,
- showCache = false;
- var ua = navigator.userAgent,
- wK = ua.toLowerCase().indexOf('webkit') > -1,
- S = location.protocol === 'https:';
- function addEvent(a, b, c) {
- if (a.addEventListener) {
- a.addEventListener(b, c, false);
- }
- }
- function removeEvent(a, b, c) {
- if (a.removeEventListener) {
- a.removeEventListener(b, c, false);
- }
- }
- if (Object.defineProperty) {
- Object.defineProperty(window, 'rwt', {
- value: function () {},
- writable: false,
- configurable: false
- })
- } else {
- window.__defineGetter__('rwt', function () {
- return function () {}
- })
- }
- if (showCache) {
- addEvent(window, 'DOMNodeInserted', cache);
- }
- function cache() {
- var cc = document.querySelectorAll('.vshid');
- if (cc) {
- for (var i = 0; i < cc.length; ++i) {
- cc[i].style.display = 'inline';
- }
- }
- }
- function proxy(e) {
- if (e && e.localName == 'a' && (e.className == 'l' || e.id == 'rg_hl' || e.className == 'rg_l' || e.className == 'rg_ilmn' || e.parentNode.className == 'vshid' || e.parentNode.className == 'gl' || e.parentNode.className == 'r')) {
- e.onmousedown ? e.removeAttribute('onmousedown') : 0;
- var m = /(&url=([^&]+)|imgurl=([^&]+))(&w=\d+&h=\d+)?&ei/g.exec(decodeURIComponent(e.href));
- if (m) e.href = m[2] || m[3];
- if (newTab) e.target = "_blank";
- if (hideReferer) {
- if (wK && !S) {
- e.rel = "noreferrer";
- } else if (!S && e.href.indexOf('http-equiv="refresh"') == -1) {
- e.href = 'data:text/html, <meta http-equiv="refresh" content="0;URL=' + encodeURIComponent(e.href) + '" charset="utf-8">';
- }
- }
- }
- }
- function tunnel(e, f) {
- if (e && e.localName == 'a' && (e.className == 'l' || e.id == 'rg_hl' || e.className == 'rg_ilmn' || e.className == 'irc_but' || e.className == 'rg_l' || e.parentNode.className == 'vshid' || e.parentNode.className == 'gl' || e.parentNode.className == 'r')) {
- if (e.href.indexOf('http-equiv="refresh"') > -1) {
- var rLink = /URL=([^"]+)/g.exec(decodeURIComponent(e.href));
- if (rLink) {
- e.href = rLink[1];
- }
- }
- }
- removeEvent(f, 'mouseout', fixer);
- }
- function fixer(e) {
- var a = e.target,
- b = a;
- if (a.localName != 'a') {
- for (; a; a = a.parentNode) {
- tunnel(a, b);
- }
- } else {
- tunnel(a, b);
- }
- }
- function doStuff(e) {
- var a = e.target;
- addEvent(a, 'mouseout', fixer);
- if (a && a.className == 'rg_i') {
- a.removeAttribute('class');
- }
- if (a.localName != 'a') {
- for (; a; a = a.parentNode) {
- proxy(a);
- }
- } else {
- proxy(a);
- }
- }
- addEvent(window, "mousedown", doStuff);