0

javascriptを介して1秒後にユーザーを別のページにリダイレクトしようとしています:

setTimout("document.location.href='new_page.html'", 1000);

ただし、Internet Explorerでは、これは1秒後ではなく、すぐに発生します。何かご意見は?

4

2 に答える 2

4

いくつかの小さなエラーを除いて、引用したものは機能するはずです。

  1. setTimeoutに「e」がありません

  2. 使用していdocument.locationます; する必要がありますwindow.location

IE8でテストしたところ、期待どおりに待機しました。フォームのイベントのように、とにかくページをリロードするイベント内からこれを行っていますsubmitか?その場合は、フォームの送信をキャンセルして、setTimeoutコードに優先しないようにする必要があります。それをどのように行うかは、イベントをフックする方法によって異なります(たとえば、DOM0onsubmit="..."ハンドラーを使用しreturn false;ている場合は、;を使用します。より新しいものを使用している場合は、event.preventDefault(); jQuery、Prototype、または他のライブラリについては、イベントのデフォルトのアクションを防ぐ正しい方法についてドキュメントを確認してください)。

さて、それはあなたがしたように機能しますが、通常、文字列内のコードよりも関数でこれを行う方が良いです、例えば:

setTimeout(function() {
    window.location.href = 'new_page.html';
}, 1000);

しかし、どちらの方法でも機能するはずです。

于 2010-05-20T12:22:56.657 に答える
0

関数でラップします。

setTimeout( function() { location.href = 'new_page.html'; }, 1000 );

ページの読み込み時に常にこれを行う場合は、代わりに実際にメタリフレッシュタグを使用する必要があることに注意してください。

 <meta http-equiv="refresh" content="1;url=new_page.html">
于 2010-05-20T12:14:49.740 に答える