1

次の基本的なコマンドを使用して、非常に単純な JavaScript リダイレクトと思われるものを実装しようとしています。

window.location.href = "http://www.somesite.com";

これまでのところ、うまく機能しています。次の方法でも実行できます。

location.replace("http://www.somesite.com");

ここでは問題ありません。再び機能します。問題は、プロトコルを文字列から外したときに発生します。

window.location.href = "www.somesite.com";

また:

location.replace("www.somesite.com");

新しい場所を現在の URL に追加するだけです。

www.currentsite.com/www.somesite.com

もちろん、それは私が望んでいるものではありません。リダイレクトを強制する方法はありますか?

4

3 に答える 3

10

1つの方法は、次のようなプロトコル相対URLを使用することです。

window.location = "//www.somesite.com";

または

window.location = "//somesite.com";

このように、それはリダイレクトし、ブラウザ自体がプロトコル部分を理解するのを処理しますhttphttps

実例

于 2012-07-05T07:03:16.883 に答える
1

URLがまだ存在しない場合は、このようなhttp://方法でURLを追加できます...自分でURLを含めない理由は考えられませんが。なぜ物事を複雑にするのですか?

​function redirect(url) {
    if(url.substr(4) != "http")
        url = "http://" + url;
    window.location.href = url;
}
redirect("www.google.com")

</ p>

于 2012-07-05T07:03:23.837 に答える
1

プロトコルが必要です。

他にどのようにブラウザが

location.replace("mysite.pl");

ポーランドの Web サイトまたは現在の Web サイトの Perl スクリプトにアクセスするつもりでしたか?

于 2012-07-05T07:01:54.607 に答える