JavaScript: location.href in neuem Fenster/Tab öffnen?
Lesezeit: 4 Minuten
iamjonesy
Ich habe eine JavaScript-Datei von einem Drittentwickler. Es hat einen has-Link, der die aktuelle Seite durch das Ziel ersetzt. Ich möchte, dass diese Seite in einem neuen Tab geöffnet wird.
Das habe ich bisher:
if (command == 'lightbox') {
location.href="https://support.wwf.org.uk/earth_hour/index.php?type=individual";
}
Kann mir jemand helfen?
Alex
window.open(
'https://support.wwf.org.uk/earth_hour/index.php?type=individual',
'_blank' // <- This is what makes it open in a new window.
);
Erwähnenswert: Ob ein neuer Tab oder ein neues Fenster erstellt wird, entscheidet der Browser (Einstellung).
– jAndy
28. Februar 2011 um 12:25 Uhr
@alex Ich habe diese Antwort bearbeitet, um das Wichtige lesbar zu machen. Wenn Sie mit meiner Formatierung nicht einverstanden sind, darf ich vorschlagen, die URL so zu kürzen, dass der zweite Parameter in den nicht scrollbaren Bereich passt?
– Phrogz
20. September 2011 um 17:51 Uhr
@ErickBest Das ist falsch. "_blank" garantiert, dass das Fenster/Tab neu ist. Alles andere (außer den anderen speziellen Namen) gibt diesem Fenster den spezifischen Namen, und nachfolgende Links zu diesem Ziel verwenden das Fenster wieder. jsFiddle.
– Alex
24. Juli 2013 um 9:39 Uhr
Dies löst nur eine Popup-Blockierungsbenachrichtigung in modernen Browsern aus, simuliert keine _blank Ankerklick überhaupt.
– Nathan Hornby
1. Oktober 2014 um 12:46 Uhr
Popup vom Browser verhindert.
– Jitendra Pancholi
17. März 2015 um 13:29 Uhr
Andreas Feld
Wenn Sie verwenden möchten location.href Um Popup-Probleme zu vermeiden, können Sie eine leere verwenden <a> ref und verwenden Sie dann Javascript, um darauf zu klicken.
Ich hatte auf diese Lösung gehofft, aber sie scheint immer noch den Popup-Block auszulösen (zumindest in Chrome). Ich habe das Gefühl, dass der Browser sich bewusst ist, dass es sich um einen JavaScript-Klick handelt, und ihn anders behandelt.
– Nathan Hornby
1. Oktober 2014 um 12:44 Uhr
Danke Nathan. Du hast recht. Sie erhalten immer noch eine Popup-Blockierungsnachricht. Ich dachte, ich hätte es geheilt. Theoretisch hätte es funktionieren müssen. Andreas
– Andreas Feld
25. März 2015 um 16:35 Uhr
$("#anchorID")[0].click(); um diese Lösung mit jquery zu verwenden.
– die Klingel
22. September 2016 um 10:34 Uhr
Lol theBell, es ist nicht jQuery, wenn Sie direkt auf das DOM-Element zugreifen [0]
– André Figueiredo
29. Juli 2019 um 21:40 Uhr
Dies ist die beste Lösung. Funktioniert auch in Safari.
– Vidhya
24. November 2021 um 13:41 Uhr
Reine js-Alternative zu window.open
let a= document.createElement('a');
a.target="_blank";
a.href="https://support.wwf.org.uk/";
a.click();
hier funktioniert Beispiel (Stackoverflow-Snippets erlauben kein Öffnen)
Diese Lösung. +++
– Widder VII
6. Juli 2021 um 2:37 Uhr
Löst den integrierten Popup-Blocker von Chrome im neuesten Chrome hier am 4. Januar 2022 aus.
– Wolomike
4. Januar um 14:54 Uhr
@Volomike In meiner Chrome-Version ist 96.0.4664.110 (Official Build) (arm64) (MacOs) – Beispiel funktioniert. Was ist deine Chrome-Version?
– Kamil Kielczewski
4. Januar um 14:58 Uhr
Ich verwende Windows 10. Version 96.0.4664.110 (Offizieller Build) (64-Bit). Wenn ich auf Ihren Beispiel-Hyperlink klicke, fängt Chrome das Popup ab und blockiert es, und ich erhalte eine Warnung in meiner Adressleiste. screencast.com/t/b6wA1Vay
– Wolomike
4. Januar um 15:20 Uhr
Vielleicht haben Sie Popups von jsfiddle.net aktiviert. Das könnte der Grund sein, warum Sie die Popup-Blockierung nicht sehen.
– Wolomike
4. Januar um 15:41 Uhr
Benutzer616639
Sie können es mit in einem neuen Fenster öffnen window.open('https://support.wwf.org.uk/earth_hour/index.php?type=individual');. Wenn Sie es in einem neuen Tab öffnen möchten, öffnen Sie die aktuelle Seite in zwei Tabs und lassen Sie dann das Skript laufen, sodass sowohl die aktuelle Seite als auch die neue Seite abgerufen werden.
Zum Beispiel:
$(document).on('click','span.external-link',function(){
var t = $(this),
URL = t.attr('data-href');
$('<a href="'+%20URL%20+'" target="_blank">External Link</a>')[0].click();
});
Das bedeutet, dass Sie entweder einen Werbeblocker oder etwas anderes haben, das ihn blockiert. Das Standardverhalten sollte unter normalen Bedingungen funktionieren
– Andrej Seregin
13. November 2019 um 17:36 Uhr
Primoschenko
Sie können auch eine neue Registerkarte öffnen, die eine Aktionsmethode mit Parametern wie dem folgenden aufruft:
var reportDate = $("#inputDateId").val();
var url="@Url.Action("PrintIndex", "Callers", new {dateRequested = "findme"})";
window.open(window.location.href = url.replace('findme', reportDate), '_blank');
Popup vom Browser verhindert.
– Millar248
29. Januar 2019 um 20:40 Uhr
Das bedeutet, dass Sie entweder einen Werbeblocker oder etwas anderes haben, das ihn blockiert. Das Standardverhalten sollte unter normalen Bedingungen funktionieren
Um einen neuen Tab zu öffnen, können Sie wie folgt verwenden: if (command == ‘lightbox’) { window.open(“https://support.wwf.org.uk/earth_hour/index.php?type=individual”, ‘ _leer’); }
8601200cookie-checkJavaScript: location.href in neuem Fenster/Tab öffnen?yes