Javascript - abra um determinado URL em uma nova guia clicando em um botão

109

Gostaria de ter um botão que redireciona para um determinado URL e abre em uma nova guia. Como isso pode ser feito?

wong2
fonte

Respostas:

143

Usa isto:

<input type="button" value="button name" onclick="window.open('http://www.website.com/page')" />

Funcionou para mim e abrirá uma nova janela 'pop-up' real em vez de um novo navegador completo ou guia. Você também pode adicionar variáveis ​​para impedi-lo de mostrar características específicas do navegador da seguinte maneira:

onclick="window.open(this.href,'popUpWindow','height=400,width=600,left=10,top=10,,scrollbars=yes,menubar=no'); return false;"
Luke Alderton
fonte
2
@ wong2 Pode ser que você queira mudar a resposta para esta. O atualmente selecionado é muito prolixo para ser eficiente.
CSS
54

Em javascript, você pode fazer:

window.open(url, "_blank");
satnam
fonte
29

Adicionar target = "_ blank" deve bastar:

<a id="myLink" href="www.google.com" target="_blank">google</a>
Tim Büthe
fonte
3
Entendo, desculpe por ter perdido isso. Bem, você pode estilizar o link para parecer com um botão. Se você estiver usando o jQuery UI, basta usar o botão para fazer isso.
Tim Büthe de
1
Excelente solução para a grande maioria de nós que apenas se interessa por web design! Obrigado!
SMBiggs
1
+1 porque você deu uma boa solução para quem procura uma resposta simples "abrir link em uma nova guia", se não estiver usando um botão.
user295583058
Exatamente o que eu quero. Obrigado
Shahrukh Anwar,
+1, se algo abre uma página em uma nova guia, é logicamente um link, então a <a>tag é apropriada. Os estilos devem ser usados ​​para torná-lo parecido com um botão.
Kos
21

Você pode esquecer de usar JavaScript porque o navegador controla se ele abre ou não em uma nova guia. Sua melhor opção é fazer algo como o seguinte:

<form action="http://www.yoursite.com/dosomething" method="get" target="_blank">
    <input name="dynamicParam1" type="text"/>
    <input name="dynamicParam2" type="text" />
    <input type="submit" value="submit" />
</form>

Isso sempre abrirá em uma nova guia, independentemente de qual navegador um cliente usa devido ao target="_blank"atributo.

Se tudo o que você precisa é redirecionar sem parâmetros dinâmicos, você pode usar um link com o target="_blank"atributo, como sugere Tim Büthe.

Tony
fonte
1
Funciona conforme necessário (testado em chrome, firefox, IE10) :)
Zeeshan
10

Use em window.openvez de window.locationpara abrir uma nova janela ou guia (dependendo das configurações do navegador).

Seu violino não funciona porque não há buttonelemento para selecionar. Experimente input[type=button]ou dê um botão ide use #buttonId.

James Allardice
fonte
10

Meu método preferido tem a vantagem de não ter JavaScript incorporado em sua marcação:

CSS

a {
  color: inherit;
  text-decoration: none;
}

HTML

<a href="http://example.com" target="_blank"><input type="button" value="Link-button"></a>
SpyderScript
fonte
Bem, acho que tenho um novo método preferido.
Halter de
Acho que este responde à pergunta mais corretamente. +1 :)
Pramesh Bajracharya
3

Abrir em uma nova guia usando javascript

 <button onclick="window.open('https://www.our-url.com')" id="myButton" 
 class="btn request-callback" >Explore More  </button>
Siddharth Shukla
fonte
1

Acabei de usar target = "_ blank" sob a tag de formulário e funcionou bem com FF e Chrome, onde abre em uma nova tag, mas com o IE abre em uma nova janela.

Obaidul Hye
fonte
1
A abertura de uma guia ou janela é determinada pelas opções do navegador do usuário. Não sei sobre o IE, mas na maioria dos navegadores a página da web não pode escolher se o link abre em uma guia ou janela, mas o usuário pode configurá-lo.
joeytwiddle
0

tente isso

<a id="link" href="www.gmail.com" target="_blank" >gmail</a>
Amo Kumar
fonte
-1

Experimente este HTML:

<input type="button" value="Button_name" onclick="window.open('LINKADDRESS')"/>
raj mori
fonte
-5

Você não pode. Este comportamento está disponível apenas para plug-ins e só pode ser configurado pelo usuário.

ckruse
fonte
-5
<BUTTON NAME='my_button' VALUE=sequence_no TYPE='SUBMIT' style="background-color:transparent ; border:none; color:blue;" onclick="this.form.target='_blank';return true;"><u>open new page</u></BUTTON>

Este botão se parecerá com um URL e pode ser aberto em uma nova guia.

Jolene
fonte
você precisa adicionar "formulário"
nerkn
Não é uma boa ideia (semanticamente falando) ter um botão para se comportar como um link. Em vez disso, use a atag.
Henrique Schreiner
-6

USE este código

function openBackWindow(url,popName){
        var popupWindow = window.open(url,popName,'scrollbars=1,height=650,width=1050');
          if($.browser.msie){
            popupWindow.blur();
            window.focus();
        }else{
           blurPopunder();
        }
      };

    function blurPopunder() {
            var winBlankPopup = window.open("about:blank");
            if (winBlankPopup) {
                winBlankPopup.focus();
                winBlankPopup.close()
            }
    };

A TI funciona bem no Mozilla, IE e Chrome na versão inferior a 22; mas não funciona no Opera e Safari.

Lalit Guglani
fonte
2
Esta não é a melhor resposta! Sólido -1.
Shougo Makishima
1
Usar este código não é realmente uma resposta e você não tem motivação por trás disso.
Edeph