154 votes

Comment ajouter target="_blank" à JavaScript window.location ?

Ce qui suit définit la cible à _blank :

if (key == "smk") {
    window.location = "http://www.smkproduction.eu5.org";
    target = "_blank";
    done = 1;
}

Mais cela ne semble pas fonctionner. Comment puis-je lancer le lien dans un nouvel onglet ?

Voici mon code :

function ToKey() {
  var done = 0;
  var key = document.tokey.key.value;
  key = key.toLowerCase();
  if (key == "smk") {
    window.location = "http://www.smkproduction.eu5.org";
    target = "_blank"
    done = 1;
  }
  if (done == 0) {
    alert("Kodi nuk është valid!");
  }
}

<form name="tokey">
  <table>
    <tr>
      <td>Type the key</td>
      <td>
        <input type="text" name="key">
      </td>
      <td>
      </td>
      <td>
        <input type="button" value="Go" onClick="ToKey()">
      </td>
  </table>
</form>

342voto

twinlakes Points 6800

window.location définit l'URL de votre fenêtre actuelle. Pour ouvrir une nouvelle fenêtre, vous devez utiliser window.open . Cela devrait fonctionner :

function ToKey(){
    var key = document.tokey.key.value.toLowerCase();
    if (key == "smk") {
        window.open('http://www.smkproduction.eu5.org', '_blank');
    } else {
        alert("Kodi nuk është valid!");
    }
}

85voto

Eric Sanchez Points 1091

Il suffit d'utiliser dans votre if (key=="smk")

if (key=="smk") { window.open('http://www.smkproduction.eu5.org','_blank'); }

15voto

mcems7 Points 141

J'ai créé une fonction qui me permet d'obtenir cette fonctionnalité :

function redirect_blank(url) {
  var a = document.createElement('a');
  a.target="_blank";
  a.href=url;
  a.click();
}

11voto

Si vous voulez ouvrir un lien dans un nouvel onglet window.open a un problème, mon firefox détecte un lien popup en utilisant window.open ' et ce n'est pas bon

Je m'occupais de cela en utilisant le dernier commentaire

var anchor = document.createElement('a');
anchor.href = 'https://example.com';
anchor.target="_blank";
anchor.click();

-1voto

    var linkGo = function(item) {
      $(item).on('click', function() {
        var _$this = $(this);
        var _urlBlank = _$this.attr("data-link");
        var _urlTemp = _$this.attr("data-url");
        if (_urlBlank === "_blank") {
          window.open(_urlTemp, '_blank');
        } else {
          // cross-origin
          location.href = _urlTemp;
        }
      });
    };

    linkGo(".button__main[data-link]");

.button{cursor:pointer;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span class="button button__main" data-link="" data-url="https://stackoverflow.com/">go stackoverflow</span>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X