4

javascriptでhtmlの2ページ間を切り替えたいのですが、 で切り替えるとwindow.locationこの文以降のコードが実行され続けます。

そのため、たとえば、getElementById()ページがまだロードされているため、それを呼び出しても要素が認識されません。

function myFun(){

    // ...

    window.location = 'page.html';

    // ... wait until page.html is loaded

}

この問題を回避するには、ページが読み込まれるまで待つにはどうすればよいですか?

4

3 に答える 3

12

あなたがするとき

window.location = 'page.html';

のコードを含むブラウザのページをmyFun新しいページに置き換えます。この命令に続くコードを実行する方法はありません。

あなたがそれを実行したいのであれば、その変更ページの後にのみ(しかし、私は要点がわかりません)、あなたはそうするかもしれません

document.onload = function(){ window.location = 'page.html'; };
于 2013-03-17T16:13:07.333 に答える
2

jQuery document.readyを使用するか、このようなカスタム バインドを作成できます。jQueryを使用する場合。

   $(document).ready(function() {
        window.location = 'page.html';
    });
于 2013-03-17T16:14:53.367 に答える
2

を実行した後、自分のページでコードを実行することはできませんwindow.location = 'page.html';。ページは新しいページに置き換えられ、現在のページのコードはなくなります。

が現在のウィンドウにロードされた後にコードを実行する唯一の方法page.htmlは次のとおりです。

  1. iframe または別のウィンドウにロードし、iframe またはウィンドウのロードがいつ終了するかを監視します。このようにして、現在のコードは残り、置き換えられません。
  2. page.htmlロードが完了したときにそのモニターにいくつかのコードを配置し、そこから目的のアクションをトリガーします。
于 2013-03-17T16:15:19.917 に答える