2017-03-29 4 views
0

Ich habe den folgenden Code und ich brauche die Timeout-Funktion, die funktioniert, aber das Öffnen einer neuen Registerkarte oder eines Fensters ist nicht.Redirect auf die Website in einem neuen Fenster oder Registerkarte

Wie ändert man den Code, wenn er nach fünf Sekunden umleitet, leitet er den Benutzer an eine andere Site, aber in einem neuen Fenster oder Tab?

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

+2

'window.open()'? – David

+0

Bitte bedenken Sie, dass Sie die Antwort genehmigen müssen, wenn sie Ihnen geholfen hat, damit sie der Community hilft. –

Antwort

3

Um ein neues Fenster öffnen Sie window.open() Funktion aufrufen müssen.

So wird der Code so etwas wie so:

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

UPDATE Dies wird wahrscheinlich an den Browser führen das Popup (oder Öffnen einer neuen Registerkarte) zu blockieren. Wenn Sie die neue Registerkarte öffnen möchten, müssen Sie dies tun, sobald der Benutzer das Klickereignis durchführt. Jede Verzögerung führt zur Blockierung des Popups.

+0

Vielen Dank, dass funktioniert, aber standardmäßig blockiert Chrome den neuen Tab beim Öffnen. Irgendwelche Arbeiten um sicherzustellen, dass ein neues Fenster oder Tab in modernen Browsern geöffnet ist? – chaser7016

+1

'window.open' nach' setTimout' oder einem anderen asynchronen Ereignis wird das Popup blockieren .. Stellen Sie sicher, dass Sie die 'window.open' aufrufen, sobald der Benutzer das Ereignis initiiert ... – Rayon

+0

Genau wie @Rayon erwähnt .. Die window.open() Ereignis sollte bei einer Benutzeraktion (zu diesem bestimmten Zeitpunkt) aufgerufen werden oder es wird blockiert. –

Verwandte Themen