web-dev-qa-db-ja.com

JavaScriptでwindow.navigateまたはdocument.locationを使用する必要がありますか?

JavaScriptを使用して現在のWebページの場所を変更するために使用する推奨方法は何ですか? window.navigateとdocument.locationの両方が使用されているのを見てきました。動作に違いはありますか?ブラウザの実装に違いはありますか?

167
dthrasher
window.location.href = 'URL';

現在のウィンドウの場所を変更するための標準実装です。

208
James Skidmore

document.locatio nは(非推奨ですが、現在も存在します)読み取り専用の文字列プロパティで、document.urlに置き換えられます。

7
kennebec

window.locationは、ブラウザのターゲットに影響します。 document.locationは、ブラウザとフレーム/ iframeにのみ影響します。

6
Aldry Zhen

window.locationはフレームにも影響しますが、

私が見つけた最高のフォームは次のとおりです:

parent.window.location.href

さらに悪いことは次のとおりです。

parent.document.URL 

私は大規模なブラウザテストを行いましたが、2番目のフォームでは、いくつかのプラグインを含むいくつかのまれなIEが未定義になります。

6
jolmos

window.navigateは一部のブラウザではサポートされていません

Javaスクリプトには、リダイレクトのためのさまざまな方法があります。以下のコードと説明を参照してください

window.location.href = "http://krishna.developerstips.com/";
window.location = "http://developerstips.com/";
window.location.replace("http://developerstips.com/");
window.location.assign("http://work.developerstips.com/");

window.location.hrefブラウザーのキャッシュからページをロードし、常にサーバーにリクエストを送信するとは限りません。そのため、キャッシュで利用可能なページの古いバージョンがある場合、サーバーから新しいページをロードする代わりに、そこにリダイレクトします。

window.location.assign()ユーザーが[戻る]ボタンを使用して元のドキュメントに戻ることを許可する場合のリダイレクトのメソッド。

window.location.replace()メソッドは、新しいページにリダイレクトしたい場合で、ユーザーが[戻る]ボタンを使用して元のページに移動できないようにする場合に使用します。

5
Srikrushna Pal

window.navigateは一部のブラウザではサポートされていないため、使用しないでください。 locationプロパティを使用する他の方法は、最も信頼性が高く一貫したアプローチです。

4
Troy Grosh

window.location = "http://...";で行きます。クロスブラウザJavaScriptを数年間コーディングしてきましたが、このアプローチを使用しても問題が発生したことはありません。

window.navigatewindow.location.hrefは少し奇妙に思えます。

2
cllpse

実際には違いはありません。約5つの異なる方法があります。ただし、私が最もよく目にするのはdocument.locationwindow.locationです。これらはすべての主要なブラウザーでサポートされているためです。 (私は個人的にwindow.navigateが実動コードで使用されるのを見たことがないので、多分それは非常に良いサポートを持っていないのでしょうか?)

1
Sasha Chedygov

非推奨メソッドですが、document.locationのサポートも良好です。私はこのメソッドをしばらく問題なく使用しています。詳細については、こちらを参照してください。

https://developer.mozilla.org/en-US/docs/Web/API/document.location

0
Ankur Goyal