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?

Muhammad Imran Tariq
fonte
2
Duplicar: stackoverflow.com/questions/427479/…
Samich 26/09
É 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.

Ian Oxley
fonte
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 :)

Shane Reustle
fonte
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();
}
rodrigo-silveira
fonte
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();    
})
relief.melone
fonte
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.

Fanis Mahmalat
fonte
Amazing OR logic
Hammad Sajid
1
Obrigado! Isso funcionou muito bem.
thenomadicmann 28/07
2

Em vez de usar pop-up, eu pessoalmente gostei dessa solução, mencionada neste segmento de perguntas JavaScript: location.href para abrir em uma nova janela / guia?

$(document).on('click','span.external-link',function(){
        var t               = $(this), 
            URL             = t.attr('data-href');        
        $('<a href="'+ URL +'" target="_blank">External Link</a>')[0].click();

    });

Exemplo de trabalho .

OyeHarish
fonte