4

URL を別の URL にリダイレクトしたい。たとえば、次のように入力するとします。

google.com

Enterキーを押すと、次の場所にリダイレクトされます。

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 を取得して比較するだけで使用できます。

で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 に答える