通过Greasemonkey重定向链接

时间:2012-06-10 20:13:03

标签: url redirect greasemonkey

我想将网址重定向到其他网址。例如,如果我输入:

google.com

然后按Enter键,它应该将我重定向到:

yahoo.com

I was at a previous thread and found a code for this,但不幸的是,它适用于所有我不想要的网址。此外,一旦重定向完成(在yahoo.com上),页面将重新加载,无休止地循环。

编辑:当前代码:

  // ==UserScript==
// @name        Google to Yahoo
// @description Redirects Google to Yahoo
// @include     http://*.google.*/*
// @version     1
// ==/UserScript==
    if(content.document.location == "http://google.com"){
            window.location.replace("http://yahoo.com")
}

1 个答案:

答案 0 :(得分:6)

您发布的脚本只是转发用户,它从不检查用户正在加载的页面。由于Greasemonkey是Javascript,您可以使用获取当前页面的URL并进行比较。

使用

获取网址
var current_location = content.document.location;

然后比较它。我想它会是这样的:

if(content.document.location == "http://google.com"){
    window.location.replace("http://yahoo.com")
}

修改

继续Shoaib所说的,你可以在Greasemonkey脚本中使用include指令。所以,在顶部,你会把

// @include     http://*.google.*/*

这将在每个页面上的每个国家/地区的每个Google子域中运行脚本,而不是其他任何国家/地区。

编辑2

使用命名空间指令可以实现:

// ==UserScript==
// @name        Redirect Google
// @namespace   http://domain.com/directory
// @description Redirect Google to Yahoo!
// @include     http://*.google.*/*
// ==/UserScript==

window.location.replace("http://yahoo.com");