web-dev-qa-db-fra.com

Le bouton d'entrée target = "_ blank" ne provoque pas le chargement du lien dans une nouvelle fenêtre/onglet

J'ai un fichier HTML avec un bouton de saisie. Ceci est seulement un exemple de bouton, mais il inclut toutes les informations de code nécessaires: 

<input type="button" onClick="parent.location='http://www.facebook.com/'" value="facebook" target="_blank">

Pour une raison quelconque, il ne se charge pas dans une nouvelle fenêtre/onglet.

8
Teemu Laine

vous aurez besoin de le faire comme ça ... 

<a type="button" href="http://www.facebook.com/" value="facebook" target="_blank" class="button"></a>

et ajoutez le css de base si vous voulez que ça ressemble à un btn .. comme ça

    .button {
    width:100px;
    height:50px;
    -moz-box-shadow:inset 0 1px 0 0 #fff;
    -webkit-box-shadow:inset 0 1px 0 0 #fff;
    box-shadow:inset 0 1px 0 0 #fff;
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ffffff), color-stop(1, #d1d1d1) );
    background:-moz-linear-gradient( center top, #ffffff 5%, #d1d1d1 100% );
 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#d1d1d1');
    background-color:#fff;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #dcdcdc;
    display:inline-block;
    color:#777;
    font-family:Helvetica;
    font-size:15px;
    font-weight:700;
    padding:6px 24px;
    text-decoration:none;
    text-shadow:1px 1px 0 #fff
}



  .button:hover {
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #d1d1d1), color-stop(1, #ffffff) );
    background:-moz-linear-gradient( center top, #d1d1d1 5%, #ffffff 100% );
 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d1d1d1', endColorstr='#ffffff');
    background-color:#d1d1d1
}
.button:active {
    position:relative;
    top:1px
}

target fonctionne uniquement avec les balises href. 

8
jycr753

utilisez formtarget="_blank" son travail pour moi

<input type="button" onClick="parent.location='http://www.facebook.com/'" value="facebook" formtarget="_blank">

Compatibilité navigateur: à partir de caniuse.com
IE: 10 + | Edge: 12 + | Firefox: 4 + | Chrome: 15 + | Safari/iOS: 5.1 + | Android: 4+

36
mans

La bonne réponse:

<form role="search" method="get" action="" target="_blank"></form>

Pris en charge par tous les principaux navigateurs :)

6
Davis

Face à un problème similaire, je l'ai résolu de cette façon:

<a href="http://www.google.com/" target="_top" style="text-decoration:none"><button id="back">Back</button></a>

Changez _top avec _blank si c'est ce dont vous avez besoin.

4
Gianluca Greco

target n'est pas valide sur un élément input

Dans ce cas, cependant, votre redirection est effectuée par Javascript, vous pouvez donc ouvrir votre script dans une nouvelle fenêtre. 

3
user1864610

L'attribut formtarget n'est utilisé que pour les boutons de type = "submit".

C'est à partir de cette référence .

Voici une réponse en utilisant JavaScript:

<input type="button" onClick="openNewTab()" value="facebook">

<script type="text/javascript">
    function openNewTab() {
        window.open("http://www.facebook.com/");
    }
</script>
2
M12 Bennett

Un élément input ne prend pas en charge l'attribut target. L'attribut target est pour les balises a et c'est où il devrait être utilisé.

2
MaVRoSCy

Au lieu de

onClick = "parent.location = ' http://www.facebook.com/ '"

essayez d'utiliser

onClick = "window.open = ' http://www.facebook.com/ '" onClick = "window.open (' http://www.facebook.com/ ', 'facebook')"

1
nick

S'il te plaît, essaie ça .__, ça marche pour moi

onClick = "window.open (' http://www.facebook.com/ ', 'facebook')"

<button type="button" class="btn btn-default btn-social" onClick="window.open('http://www.facebook.com/','facebook')">
          <i class="fa fa-facebook" aria-hidden="true"></i>
</button>
1
Saikat Das

Il suffit d’utiliser javascript window.open function avec le second paramètre à "_blank"

<button onClick="javascript:window.open('http://www.facebook.com', '_blank');">facebook</button>
0
Laurent

Une autre solution, utilisant JQUERY, serait d’écrire une fonction qui est appelée lorsque l’utilisateur clique sur le bouton. Cette fonction crée un nouvel élément <A>, avec target = 'blank', l'ajoute au document, "clique", puis il le supprime. 

Donc, en ce qui concerne l'utilisateur, ils ont cliqué sur un bouton, mais en coulisse, un élément <A> avec target = '_ blank' a été cliqué.

<input type="button" id='myButton' value="facebook">

$(document).on('ready', function(){
     $('#myButton').on('click',function(){
         var link = document.createElement("a");
         link.href = 'http://www.facebook.com/';
         link.style = "visibility:hidden";
         link.target = "_blank";
         document.body.appendChild(link);
         link.click();
         document.body.removeChild(link); 
     });
});

JsFiddle: https://jsfiddle.net/ragDaniel/tf991u4g/2/

0
RagD
<form target="_blank">
    <button class="btn btn-primary" formaction="http://www.google.com">Google</button>
</form>
0
JoshYates1980