javascript window.location em uma nova guia


123

Estou desviando o usuário para algum URL, window.locationmas esse URL é aberto na mesma guia do navegador. Quero que seja aberto em uma nova guia. Posso fazer isso com window.location? Existe outra maneira de fazer essa ação?



É window.locationum requisito? Ou outras soluções JS podem ser oferecidas?
Khez 26/09

@ Kehe: outras JS podem ser oferecidas.
Muhammad Imran Tariq

Respostas:


27

Acho que não há uma maneira de fazer isso, a menos que você esteja escrevendo uma extensão do navegador. Você pode tentar usar window.opene esperar que o usuário tenha o navegador configurado para abrir novas janelas em novas guias.


438
window.open('https://support.wwf.org.uk', '_blank');

O segundo parâmetro é o que o abre em uma nova janela. Não se esqueça de ler o artigo informativo de Jakob Nielsen :)


10
mas e se o seu navegador tiver bloqueado as configurações no pop-up? isso não vai funcionar.
Pregmatch 5/08

@ Alex meh ... não é realmente a resposta "certa". Tentando isso no Firefox, onde evito janelas pop-up, esse código falha.
TARKUS

14

Isso funciona para mim no Chrome 53. Não testei em nenhum outro lugar:

function navigate(href, newTab) {
   var a = document.createElement('a');
   a.href = href;
   if (newTab) {
      a.setAttribute('target', '_blank');
   }
   a.click();
}

6

com o jQuery é ainda mais fácil e funciona no Chrome também

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})

5

Você pode até usar

window.open('https://support.wwf.org.uk', "_blank") || window.location.replace('https://support.wwf.org.uk');

Isso abrirá na mesma guia se o pop-up estiver bloqueado.


Amazing OR logic
Hammad Sajid

1
Obrigado! Isso funcionou muito bem.
thenomadicmann 28/07

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.