Firefox 如何使用Google Mobilizer在浏览过的页面中移动所有链接?

Firefox 如何使用Google Mobilizer在浏览过的页面中移动所有链接?,firefox,mobile,web,greasemonkey,Firefox,Mobile,Web,Greasemonkey,我正试图让我的一些网页上的链接“动员”与这个伟大的服务 例如:更改URL,如: http://imgur.com/ 致: Google Mobilizer大大减少了传递给它的任何URL的大小。图像缩小了。仅渲染动画GIF的第一帧,并且基本上任何资源的大小都会大大减小。这大大减少了低带宽和高延迟连接的下载时间 这可以在Firefox中通过附加组件或用户脚本实现吗?因此,网页上的所有链接都以www.google.com/gwt/x?u=作为前缀 这实际上是一个上下文菜单项。是的,Firefox插

我正试图让我的一些网页上的链接“动员”与这个伟大的服务

例如:更改URL,如:

http://imgur.com/ 
致:

Google Mobilizer大大减少了传递给它的任何URL的大小。图像缩小了。仅渲染动画GIF的第一帧,并且基本上任何资源的大小都会大大减小。这大大减少了低带宽和高延迟连接的下载时间

这可以在Firefox中通过附加组件或用户脚本实现吗?因此,网页上的所有链接都以
www.google.com/gwt/x?u=
作为前缀


这实际上是一个上下文菜单项。是的,Firefox插件可以做到这一点,Firefox Greasemonkey脚本也应该可以做到这一点

下面概述了如何使用仅限Firefox的Greasemonkey脚本:

  • 将脚本设置为新的
    href
    属性以使用mobilizer服务

  • 当一个新的
    部件指向mobilizer服务时
  • 创建一个新的
    节点,旧节点位于该节点上

  • 这对我有用。它用附加在页面上的Google Mobilizer URL替换页面上的所有链接

    if (!(
    // Except when on ...
                (/google.com\/search/.test(document.URL))
            ||  (/google.*\/gwt/.test(document.URL))
        )){     
        var link = document.body.getElementsByTagName("a");
        for (var i = 0; i < link.length; i++) {
            if (!(
    //Only for external links
                        (link[i].hostname == window.location.hostname)
    //And except for links that contain... 
                    ||  (/google\./.test(link[i].href))
                    ||  (/stack/.test(link[i].href))
                    ||  (/reddit\./.test(link[i].href))
    //And except for Null & Javascript-purpose links...
                    ||  (/\0/.test(link[i].href))
                )){
    //Mobilize all links (append mobilizer URL)
                link[i].href = link[i].href.replace("http","http://google.com/gwt/x?u=http")
                }
            }
        }
    else if (/google.*\/gwt/.test(document.URL)){
    // But when on Google Mobilizer site itself, ...
        var link = document.body.getElementsByTagName("a")
        for (var i = 0; i < link.length; i++) {
            if ((/gwt\/x\/e\?/.test(link[i].href))) {
    //De-mobilize (just) "View page directly" link (because it unnecessarily prompts for redirection)
                var inner = link[i].href.indexOf('http',1);
                inner = inner>-1 ? link[i].href.substr(inner,link[i].href.indexOf('&',inner)-inner) : false;
                if (inner)
                    link[i].href = inner;
                }
            }
        }
    
    if((
    //除非是在。。。
    (/google.com\/search/.test(document.URL))
    ||(/google.*\/gwt/.test(document.URL))
    )){     
    var link=document.body.getElementsByTagName(“a”);
    对于(变量i=0;i-1?链接[i]。href.substr(内部,链接[i]。href.indexOf('&',内部)-内部):false;
    如果(内部)
    link[i].href=internal;
    }
    }
    }
    
    它还检查
    链接是否属于父站点域,并且不会更改它们

    这只是做静态链接,而你的问题谈论了很多关于图像的内容,并将imgur.com包含在它的示例URL中。这种方法在AJAX驱动的页面上也不起作用。
    if (!(
    // Except when on ...
                (/google.com\/search/.test(document.URL))
            ||  (/google.*\/gwt/.test(document.URL))
        )){     
        var link = document.body.getElementsByTagName("a");
        for (var i = 0; i < link.length; i++) {
            if (!(
    //Only for external links
                        (link[i].hostname == window.location.hostname)
    //And except for links that contain... 
                    ||  (/google\./.test(link[i].href))
                    ||  (/stack/.test(link[i].href))
                    ||  (/reddit\./.test(link[i].href))
    //And except for Null & Javascript-purpose links...
                    ||  (/\0/.test(link[i].href))
                )){
    //Mobilize all links (append mobilizer URL)
                link[i].href = link[i].href.replace("http","http://google.com/gwt/x?u=http")
                }
            }
        }
    else if (/google.*\/gwt/.test(document.URL)){
    // But when on Google Mobilizer site itself, ...
        var link = document.body.getElementsByTagName("a")
        for (var i = 0; i < link.length; i++) {
            if ((/gwt\/x\/e\?/.test(link[i].href))) {
    //De-mobilize (just) "View page directly" link (because it unnecessarily prompts for redirection)
                var inner = link[i].href.indexOf('http',1);
                inner = inner>-1 ? link[i].href.substr(inner,link[i].href.indexOf('&',inner)-inner) : false;
                if (inner)
                    link[i].href = inner;
                }
            }
        }