Javascript - Ouvre une URL donnée dans un nouvel onglet en cliquant sur un bouton


109

Je voudrais avoir un bouton qui redirige vers une URL donnée et s'ouvre dans un nouvel onglet. Comment cela peut-il être fait?

Réponses:


144

Utilisez ceci:

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

Cela a fonctionné pour moi et cela ouvrira une nouvelle fenêtre contextuelle plutôt qu'un nouveau navigateur ou onglet complet. Vous pouvez également y ajouter des variables pour l'empêcher d'afficher des caractéristiques de navigateur spécifiques comme suit:

onclick="window.open(this.href,'popUpWindow','height=400,width=600,left=10,top=10,,scrollbars=yes,menubar=no'); return false;"

2
@ wong2 Pourrait vouloir changer la réponse à celle-ci. Celui actuellement sélectionné est loin d'être verbeux pour être efficace.
CSS

54

En javascript, vous pouvez faire:

window.open(url, "_blank");

29

L'ajout de target = "_ blank" devrait le faire:

<a id="myLink" href="www.google.com" target="_blank">google</a>

3
Je vois, désolé d'avoir manqué ça. Eh bien, vous pouvez styliser le lien pour qu'il ressemble à un bouton. Si vous utilisez l'interface utilisateur jQuery, utilisez simplement le bouton pour le faire.
Tim Büthe

1
Excellente solution pour la grande majorité d'entre nous qui se contentent de faire de la conception Web! Je vous remercie!
SMBiggs

1
+1 parce que vous avez donné une bonne solution à ceux qui recherchent une réponse simple "Ouvrir le lien dans un nouvel onglet", s'ils n'utilisent pas de bouton.
user295583058

Exactement ce que je veux. Merci
Shahrukh Anwar

+1, si quelque chose ouvre une page dans un nouvel onglet, c'est logiquement un lien, donc la <a>balise est appropriée. Les styles doivent être utilisés pour le faire ressembler à un bouton.
Kos

21

Vous pouvez oublier d'utiliser JavaScript car le navigateur contrôle s'il s'ouvre ou non dans un nouvel onglet. Votre meilleure option est de faire quelque chose comme ce qui suit à la place:

<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>

Cela s'ouvrira toujours dans un nouvel onglet quel que soit le navigateur utilisé par un client en raison de l' target="_blank"attribut.

Si tout ce dont vous avez besoin est de rediriger sans paramètres dynamiques, vous pouvez utiliser un lien avec l' target="_blank"attribut comme le suggère Tim Büthe.


1
Fonctionne selon les besoins (testé sur chrome, firefox, IE10) :)
Zeeshan

10

Utilisez window.openau lieu de window.locationpour ouvrir une nouvelle fenêtre ou un nouvel onglet (selon les paramètres du navigateur).

Votre violon ne fonctionne pas car il n'y a aucun buttonélément à sélectionner. Essayez input[type=button]ou donnez au bouton un idet utilisez #buttonId.


10

Ma méthode préférée a l'avantage de ne pas intégrer de JavaScript dans votre balisage:

CSS

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

HTML

<a href="http://example.com" target="_blank"><input type="button" value="Link-button"></a>

Eh bien, je suppose que j'ai une nouvelle méthode préférée.
Halter

Je pense que celui-ci répond plus correctement à la question. +1 :)
Pramesh Bajracharya

3

Ouvrir dans un nouvel onglet en utilisant javascript

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

1

Je viens d'utiliser target = "_ blank" sous la balise form et cela a bien fonctionné avec FF et Chrome où il s'ouvre dans une nouvelle balise mais avec IE, il s'ouvre dans une nouvelle fenêtre.


1
L'ouverture d'un onglet ou d'une fenêtre est déterminée par les options du navigateur de l'utilisateur. Je ne connais pas IE, mais dans la plupart des navigateurs, la page Web ne peut pas choisir si le lien s'ouvre dans un onglet ou une fenêtre, mais l'utilisateur peut le configurer.
joeytwiddle

0

essaye ça

<a id="link" href="www.gmail.com" target="_blank" >gmail</a>

-1

Essayez ce code HTML:

<input type="button" value="Button_name" onclick="window.open('LINKADDRESS')"/>

-5

Vous ne pouvez pas. Ce comportement n'est disponible que pour les plugins et ne peut être configuré que par l'utilisateur.


-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>

Ce bouton ressemblera à une URL et pourra être ouvert dans un nouvel onglet.


vous devez ajouter "formulaire"
nerkn

Ce n'est pas une bonne idée (sémantiquement parlant) d'avoir un bouton pour se comporter comme un lien. À la place, utilisez la abalise.
Henrique Schreiner

-6

UTILISEZ ce code

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()
            }
    };

Il fonctionne très bien dans Mozilla, IE et chrome sur et moins de la version 22; mais ne fonctionne pas dans Opera et Safari.


2
Ce n'est pas la meilleure réponse! Solide -1.
Shougo Makishima

1
Utiliser ce code n'est pas vraiment une réponse et vous n'avez aucune motivation derrière cela.
Edeph
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.