JavaScriptを使用して現在のWebページの場所を変更するために使用する推奨方法は何ですか? window.navigateとdocument.locationの両方が使用されているのを見てきました。動作に違いはありますか?ブラウザの実装に違いはありますか?
window.location.href = 'URL';
現在のウィンドウの場所を変更するための標準実装です。
document.locatio nは(非推奨ですが、現在も存在します)読み取り専用の文字列プロパティで、document.urlに置き換えられます。
window.location
は、ブラウザのターゲットに影響します。 document.locationは、ブラウザとフレーム/ iframeにのみ影響します。
window.location
はフレームにも影響しますが、
私が見つけた最高のフォームは次のとおりです:
parent.window.location.href
さらに悪いことは次のとおりです。
parent.document.URL
私は大規模なブラウザテストを行いましたが、2番目のフォームでは、いくつかのプラグインを含むいくつかのまれなIEが未定義になります。
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()メソッドは、新しいページにリダイレクトしたい場合で、ユーザーが[戻る]ボタンを使用して元のページに移動できないようにする場合に使用します。
window.navigate
は一部のブラウザではサポートされていないため、使用しないでください。 locationプロパティを使用する他の方法は、最も信頼性が高く一貫したアプローチです。
window.location = "http://...";
で行きます。クロスブラウザJavaScriptを数年間コーディングしてきましたが、このアプローチを使用しても問題が発生したことはありません。
window.navigate
とwindow.location.href
は少し奇妙に思えます。
実際には違いはありません。約5つの異なる方法があります。ただし、私が最もよく目にするのはdocument.location
とwindow.location
です。これらはすべての主要なブラウザーでサポートされているためです。 (私は個人的にwindow.navigate
が実動コードで使用されるのを見たことがないので、多分それは非常に良いサポートを持っていないのでしょうか?)
非推奨メソッドですが、document.location
のサポートも良好です。私はこのメソッドをしばらく問題なく使用しています。詳細については、こちらを参照してください。
https://developer.mozilla.org/en-US/docs/Web/API/document.location