zoukankan      html  css  js  c++  java
  • userscripts.org最新网址

    stopGoogleRedirection:

    http://userscripts.org:8080/scripts/show/186798

    // ==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('执行的脚本实际内容
    ', 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);
    })();
    

      

  • 相关阅读:
    从零开始学习SSH框架笔记之一 初识SSH框架及下载地址
    CentOS 6.0 升级内核步骤、方法
    解决Ubuntu详细信息中图形显示为未知的情况
    【Oracle XE系列之二】Oracle XE创建表空间、创建用户以及授权、查看权限
    排序算法大总结
    我的vimrc 设置
    你的c++学的怎么样?
    腾讯的笔试题一道
    一道递归算法题
    vc6 bug真多 写c++别用vc6
  • 原文地址:https://www.cnblogs.com/kind064100611/p/3764073.html
Copyright © 2011-2022 走看看