一个超简单的在Google中直接访问目标网址的脚本

  前段时间因开某会,悲催的Google一如以往的无法正常使用,常常搜索结果页面顺利出现了,点击链接却无法打开或打开很慢,产生这种现象的原因是Google通过跳转后才把目标网址返回给你,于是领导一个不高兴就又被墙了。

  下面的这段很简单的代码就是让你避免使用Google跳转,直接访问目标网址。

(function(){
    function getRealUrl(l) {
        if (l.indexOf('/url?') < 0)
            return null;
        var a = document.createElement('a'); 
        a.href = l;
        seg = a.search.replace(/^\?/,'').split('&');
        for (i = 0; i < seg.length; i++) { 
            if (!seg[i])
                continue;
            s = seg[i].split('='); 
            if (s[0] == 'url')
                return decodeURIComponent( s[1] );
        } 
        return null;
    }

    /**
     * 直接在载入http:://www.google.com/url?.... 中重定向到真实的目标网址
     * 问题:当目标网址无法访问时,地址栏中的地址信息并未改变到目标网址,可能产生误解
     */
    var real = getRealUrl(location.href);
    if (real) {
        window.location.href = real;
        return;
    };

    document.addEventListener('click', function(e){
        for(a = e.target; a; a = a.parentNode) {
            if(a.localName != 'a') 
                continue;
            real = getRealUrl( a.getAttribute('href') );
            if (real) {
                a.setAttribute( 'href', real );
                a.removeAttribute('onmousedown');
            }
            break;
        }
    }, false);
})();

Source on gist

你可以通过三种方法使用:

1. 通过Chrome扩展

  将url.js、manifest.json通过Chrome扩展开发工具打包成crx包。

2. 通过收藏栏链接

  将下面的链接拖到浏览器收藏栏中,需要时点击即可,在Chrome、Firefox中可用,Safari中似乎直接访问的就是目标地址了

Google Search URL Uncover

3. 通过用户脚本(UserScript)

  未测试过,不过理论上应该可行。在脚本前添加如下内容

// ==UserScript==
// @name           Google URL Uncover
// @namespace      http://jeeker.net/article/google-search-url-uncover/
// @description    Google 搜索结果链接去除google跳转,直接访问目标网址。
// @include        http://*.google.*/*
// @include        https://*.google.*/*
// @version        0.1
// @author         JinnLynn
// @license        MIT license
// ==/UserScript==

PS: 代码在Chrome下测试通过,IE没戏。