Hur lägger man till target="_blank" till JavaScript window.location?


Följande sätter målet till _blank:

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

Men detta verkar inte fungera. Hur öppnar jag länken i en ny flik?

Här är min kod:

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>

Svar #1

window.location ställer in URL:en för ditt nuvarande fönster. För att öppna ett nytt fönster behöver du använda window.open. Detta bör fungera:

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!");
    }
}

Svar #2

Använd bara i din if (key=="smk")

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

Svar #3

om du vill öppna en länk i en ny flik har window.open ett problem, min Firefox upptäcker en popup-länk genom att använda window.open och detta är inte bra

Jag hanterade detta genom att använda den senaste kommentaren

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

Svar #4

Jag har skapat en funktion som gör att jag kan få den här funktionen:

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

Relaterade artiklar