4

我想将一个 URL 重定向到另一个 URL。例如,如果我要输入:

google.com

然后按回车,它应该将我重定向到:

yahoo.com

我在上一个帖子中找到了这个的代码,但不幸的是,它适用于我不想要的所有 URL。此外,一旦重定向完成(在 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")
}
4

1 回答 1

7

您发布的脚本只是转发用户,它从不检查用户正在加载的页面。由于 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");
于 2012-06-10T20:18:46.697 回答