web-dev-qa-db-ja.com

window.location.hrefを変更した後、onloadコールバックを持つ方法はありますか?

本質的に私がしたいことはこれの効果に対するものです:

window.location.href = "some_location";
window.onload = function() {
  alert("I'm the new location and I'm loaded!");
};

ウィンドウの新しい場所が読み込まれたときにコールバックを行う方法はありますか? (上記のコードは機能しません。)

22
Lukas

いいえ、好きなようにはできません。新しいページを読み込むと、現在のドキュメントが閉じ、新しいドキュメントの読み込みが開始されます。現在のドキュメントのコードは、新しいページの読み込みが開始されるとアクティブではなくなります。

新しいドキュメントの読み込み時にイベントハンドラーを使用するには、新しいページのドキュメントにコードを挿入するか、新しいドキュメントをiframeに読み込み、現在のドキュメントからのiframeの読み込みを監視する必要があります。

16
jfriend00

Window.location.hrefを新しい値に設定すると、ブラウザに次のページに移動するように指示します。

そのようです:

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

ブラウザーがgoogle.comにアクセスすると、それだけです。JavaScriptは実行されなくなり、ブラウザーがページを実行しなくなったため、なんらかのコールバックを行う方法はありません。

だから、答えはノーです。

3
mattgmg1990