2017-01-20 4 views
0

タイムアウト機能を複数回使用しようとしていますが、1回だけ実行されます。私は6秒後に2番目のURLを達成しようとしています。タイムアウト機能を複数回使用しようとしています

最初は3秒後に正常に動作しています。 else文も試してみましたが効果はありません。

<!doctype html> 
<html> 
<body> 
    <p>You will be redirected in 3 seconds</p> 
    <script> 
     var time = setTimeout(function() { 
      window.location = 'http://example.com' 
     }, 3000); 

     var one = setTimeout(function() { 
      window.location = 'http://google.com' 
     }, 6000); 
    </script> 
</body> 
</html> 
+1

3秒後に既にexample.comにリダイレクトされるので、現在のjsの実行は新しく読み込まれたページに置き換えられます。別のタブで開くようにしてください。 –

+0

このタイプを提供するためにどのような目的がありますかの特徴。 Quentinが述べたように、あなたはこれを達成することはできませんが、まだそれを使用したい場合やセキュリティバインディングがない場合は、IFRAMEを使用してそれを行うことができます。 IFRAMEを使用してこのコードが必要な場合は教えてください –

+0

リダイレクト先のページを所有しているか制御していますか? –

答えて

9

JavaScript(この文脈で)はウェブページ内で実行されます。

ページを離れるとき、あなたはJavaScriptがで実行されている環境を破壊する。

あなたが別のページに移動した後は、JavaScriptの機能3(または他の任意の数)秒を実行することはできません。

+0

1ページの時間間隔を3秒から10秒に増やすことができますか? – Atif

+0

いいえ。あなたがページを離れたときに破壊されたJSが実行中のページは、さらに7秒後にはまだ破壊されています。 – Quentin

0

@Quentinで述べたように、既存のコードで動作させることはできません。

あなたのコメントで要求されるように、IFRAME

<!doctype html> 
<html> 
<body> 
    <p>You will be redirected in 3 seconds</p> 
    <!-- use your CSS skills to adjust iframe on the page --> 
    <!-- You can also decide if you want to hide iframe intially and show it on first load --> 
    <iframe id="iframe_window" src='about:blank' style="height:100%;width:100%;"></iframe> 
    <script> 
     var time = setTimeout(function() { 
      document.getElementById['iframe_window'].src = 'http://example.com'; 

     }, 3000); 

     var one = setTimeout(function() { 
      document.getElementById['iframe_window'].src = 'http://google.com'; 
     }, 6000); 
    </script> 
</body> 
</html> 
0

を使用して、次の試してみてくださいあなたはこれを行うことができます(代わりにwindow.locationwindow.open"_blank"を使用してください)。

<!doctype html> 
<html> 
<body> 
    <p>You will be redirected in 3 seconds</p> 
    <script> 
     setTimeout(function() { 
      window.open('http://www.example.com','_blank'); 
     }, 3000); 

setTimeout(function() { 
    window.open('http://google.com','_blank'); 
     }, 6000); 

    </script> 
</body> 
</html> 

window.location=""を使用して、ウィンドウの場所を割り当てることができます。最初にwindow.locationが発行されたとき、それは最初のコードの存在を失い、www.example.comページにリダイレクトされました。これを達成したい場合はwindow.locationwww.example.comコードに入れなければなりません。

+0

ありがとうShubham。私はタブを閉じようとしました。 Googleのタブのように表示されたら、サンプルタブを閉じます。 window.close()を使用しようとしていますが、動作していません。 – Atif

関連する問題