阅读:4741回复:6
[求助]修改禁止google的搜索结果重定向脚本
我在用禁止google的搜索结果重定向脚本
https://userscripts.org/scripts/show/186798 怎么修改这个脚本适配goole自定义搜索,比如这个 https://www.google.com/cse/home?cx=001218728609057809719:zt-a0ntt7t0&ie=UTF-8&sa=%E6%90%9C%E7%B4%A2&siteurl=www.google.com/cse/home // ==UserScript== // @name stopGoogleRedirection // @author NLF // @description 禁止google的搜索结果重定向,加快访问速度,防止撞墙(support (opera,firefox(GreaseMonkey),chrome) Latest Stable,IE9+) // @version 1.0.0.5 // @created 2013-12-26 // @lastUpdated 2013-2-5 // @grant none // @run-at document-start // @namespace http://userscripts.org/users/NLF // @homepage http://userscripts.org/scripts/show/186798 // @downloadURL https://userscripts.org/scripts/source/186798.user.js // @updateURL https://userscripts.org/scripts/source/186798.meta.js // @include http* // @match *://*/* // ==/UserScript== ;(function () { 'use strict'; // 将在真实环境下执行的实际函数。 function contentScript() { 'use strict'; // 匹配应用本脚本的网页 if (!/^https?:\/\/www\.google(?:\.[A-z]{2,3}){1,2}\//i.test(location.href)) { return; }; var emptyFn = function () { }; // 覆盖google处理重定向的函数 if (typeof Object.defineProperty == 'function') { Object.defineProperty(window, 'rwt', { configurable: false, enumerable: true, get: function () { return emptyFn; }, }); } else if (typeof window.__defineGetter__ == 'function') { window.__defineGetter__('rwt', function () { return emptyFn; }); }; }; // 如果发生通信的话,需要一个独一无二的ID var messageID = Math.random().toString(); // 把指定函数丢到真实环境中执行,规避一切脚本管理器乱七八糟的执行环境产生的奇葩Bug, // 特别是chrome上的那个坑爹tampermonkey。。。 function runInPageContext(fn) { if (typeof fn !== 'function') { return; }; // 创建一个脚本插入到pageContext执行 var script = document.createElement('script'); script.type = 'text/javascript'; // 去掉函数名,防止污染全局环境。 var sContent = ';(' + fn.toString().replace(/[^(]+/, 'function ') + ')(' + JSON.stringify(messageID) + ');'; // console.log('执行的脚本实际内容\n', sContent); script.textContent = sContent; // 检测html元素是否可访问 // scriptish @run-at document-start时,html元素在第一时间不可访问 var de = document.documentElement; if (de) { de.appendChild(script); de.removeChild(script); } else { new (window.MutationObserver || window.WebKitMutationObserver)(function (ms, observer) { var de = document.documentElement; if (de) { // console.log(de.outerHTML); observer.disconnect(); de.appendChild(script); de.removeChild(script); }; }).observe(document, { childList: true, }); }; }; runInPageContext(contentScript); })(); |
|
|
1楼#
发布于:2014-04-15 17:23
这脚本来就是全局的 对于这样的站点有效呀
|
|
2楼#
发布于:2014-04-16 09:43
|
|
|
3楼#
发布于:2014-04-16 16:03
|
|
4楼#
发布于:2014-04-16 17:42
最近发现https的结果
google会用https的域名来做跳转 然后我的privoxy转向规则就跪了 |
|
|
5楼#
发布于:2014-04-16 18:18
自定义搜索根本没定义rwt函数,重定向目标是直接写死在html里的,重定向的实际作用函数暂时没找到
要在这个页面生效,脚本需要重新编制,不兼容rwt写法 |
|
|
6楼#
发布于:2014-04-17 09:15
|
|
|