通过Greasemonkey重定向链接

Sni*_*har 3 url redirect greasemonkey

我想将URL重定向到其他URL.例如,如果我输入:

google.com
Run Code Online (Sandbox Code Playgroud)

并按Enter键,它应该重定向到:

yahoo.com
Run Code Online (Sandbox Code Playgroud)

我在上一个帖子中找到了一个代码,但不幸的是,它适用于所有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")
}
Run Code Online (Sandbox Code Playgroud)

cit*_*spi 6

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

获取URL

var current_location = content.document.location;
Run Code Online (Sandbox Code Playgroud)

然后比较一下.我想它会是这样的:

if(content.document.location == "http://google.com"){
    window.location.replace("http://yahoo.com")
}
Run Code Online (Sandbox Code Playgroud)

编辑

根据Shoaib的说法,您可以在Greasemonkey脚本中使用include指令.所以,在顶部你会放

// @include     http://*.google.*/*
Run Code Online (Sandbox Code Playgroud)

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

编辑2

使用namespace指令可以实现:

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

window.location.replace("http://yahoo.com");
Run Code Online (Sandbox Code Playgroud)