2017-03-29 9 views
0

次のコードがありますが、動作するタイムアウト機能が必要ですが、新しいタブまたはウィンドウを開くことはできません。新しいウィンドウまたはタブでウェブサイトにリダイレクトする

5秒後にリダイレクトすると、ユーザーを別のサイトに転送するが、新しいウィンドウやタブに表示されるようにコードを変更するにはどうすればよいですか?

$('#google').click(function(){ 
 
     setTimeout(function() { 
 
     window.location.href = "https://google.com", '_blank' 
 
     }, 5000); 
 
     });

+2

'window.open()'? – David

+0

それがコミュニティに役立つように、それがあなたを助けた場合、回答を承認することを検討してください。 –

答えて

3

あなたがwindow.open()関数を呼び出す必要があり、新しいウィンドウを開きます。

$('#google').click(function(){ 
    setTimeout(function() { 
     window.open('https://google.com') //this by default opens a new window 
    }, 5000); 
}); 

UPDATE これはおそらく、ポップアップをブロックするブラウザ(または新しいタブの開口部)につながる:

だからあなたのコードはそうのようなものになります。新しいタブを開く場合は、ユーザーがクリックイベントを実行するとすぐにそれを実行する必要があります。遅延が発生すると、ポップアップがブロックされます。

+0

ありがとうございますが、Chromeはデフォルトで新しいタブが開かないようにしています。最近のブラウザでは、新しいウィンドウやタブを確実に開くための回避策はありますか? – chaser7016

+1

'setTimout'やその他の非同期イベントの後の' window.open'は、ポップアップをブロックします。ユーザーがイベントを開始するとすぐに 'window.open'を呼び出すようにしてください... – Rayon

+0

@Rayonとまったく同じ.. .. window.open()イベントは、(特定の瞬間に)ユーザーのアクションで呼び出されるか、ブロックされます。 –

関連する問題