Was ist der Unterschied zwischen <a target="_new">und <a target="_blank">und was soll ich verwenden, wenn ich nur einen Link in einem neuen Tab / Fenster öffnen möchte?
Zusammenfassung der aktuellen Antworten: _newhat keine besondere Bedeutung. Du könntest auch schreiben _white_little_lamb.
Álvaro González
10
@ x3ro Wie macht es das falsch zu sagen, dass " _new" keine besondere Bedeutung hat?
Álvaro González
3
@ ÁlvaroG.Vicario Ich bezog mich auf "Sie könnten schreiben ... stattdessen". Aber wenn ich darüber nachdenke, würde ich argumentieren, dass "keine besondere Bedeutung hat" nicht dasselbe ist wie "wird ausdrücklich entmutigt", aber das könnte ich nicht picken;)
fresskoma
5
Ich möchte alle daran erinnern, dass die Verwendung target="_blank"ohne rel="noopener"eine potenzielle Sicherheitslücke darstellt. Suchen Sie nach rel="noopener", um mehr zu erfahren.
Ein gültiger Browserkontextname ist eine Zeichenfolge mit mindestens einem Zeichen, die nicht mit einem U + 005F LOW LINE-Zeichen beginnt. (Namen, die mit einem Unterstrich beginnen, sind für spezielle Schlüsselwörter reserviert.)
Ein gültiger Browserkontextname oder ein gültiges Schlüsselwort ist eine Zeichenfolge, bei der es sich entweder um einen gültigen Browserkontextnamen handelt oder bei der die Übereinstimmung zwischen Groß- und Kleinschreibung nicht berücksichtigt wird: _blank, _self, _parent oder _top. "- Quelle
Das bedeutet, dass es kein solches Schlüsselwort wie _newin HTML5 und auch nicht in HTML4 (und folglich in XHTML) gibt . Das bedeutet, dass es überhaupt kein konsistentes Verhalten gibt, wenn Sie dies als Wert für das Zielattribut verwenden.
Sicherheitsempfehlung
Wie Daniel und Michael in den Kommentaren hervorgehoben haben, sollten Sie bei der Verwendung eines Ziels, _blankdas auf eine nicht vertrauenswürdige Website verweist, zusätzlich festlegen rel="noopener". Dies verhindert, dass die öffnende Site über JavaScript mit dem Opener in Konflikt gerät. Weitere Informationen finden Sie in diesem Beitrag .
Wenn Sie den fettgedruckten Text aus der Spezifikation weglassen, klingt dieses Zitat verwirrend kreisförmig. Ich las es als "A valid browsing context nameoder Schlüsselwort ist eine beliebige Zeichenfolge, die entweder ein valid browsing context nameoder ... ist"
Alex Grin
6
@lyoshenka, @ x3ro: Ich habe mir erlaubt, den vorherigen Absatz zum Zitat hinzuzufügen. Das sollte die Verwirrung beseitigen.
Mercator
5
@aesede: Lesen Sie die Spezifikation. Sie sind nicht gültig, weil „my_custom_name“ kann nicht mit einem Unterstrich vorangestellt werden. Also "neu" wäre in Ordnung, aber "_new" nicht!
Bitte erwägen Sie hinzuzufügen, dass Personen rel="noopener noreferrer"aufgrund der Javascript-Angriffsanfälligkeit vontarget="_blank"
Michael
126
Mit target="_blank"wird der Browser angewiesen, eine neue Browserregisterkarte oder ein neues Browserfenster zu erstellen, wenn der Benutzer auf den Link klickt.
Die Verwendung target="_new"ist gemäß den Spezifikationen technisch ungültig, aber soweit ich weiß, verhält sich jeder Browser gleich:
Es wird nach einer Registerkarte oder einem Fenster mit dem Kontextnamen "_new" gesucht.
Wenn ein "_new" Tab / Fenster gefunden wird, wird die URL darin geladen
Wird es nicht gefunden, wird eine neue Registerkarte / ein neues Fenster mit dem Kontextnamen "_new" erstellt und die URL darin geladen
Hinweis target="_new"verhält sich genauso wie target="new"und letzteres ist gültiges HTML, während ersteres ungültiges HTML ist.
In HTML4 war das targetAttribut veraltet. In HTML5 wurde diese Entscheidung rückgängig gemacht und ist wieder ein offizieller Teil der Spezifikation. Alle Browser unterstützen targetunabhängig davon, welche HTML-Version Sie verwenden. Einige Validatoren kennzeichnen die Verwendung jedoch als veraltet, wenn Ihr Doctype HTML4 ist.
Wenn ich also zwei (oder mehr) Links habe target="_new", werden beide in derselben Registerkarte geöffnet, wobei einer den anderen überschreibt.
Art-Solopov
4
@ art-solopov soweit ich weiß, ja das wird in jedem browser passieren. "_New" ist jedoch ein unzulässiger Wert für ein Ziel. Tun Sie es also nicht.
Abhi Beckert
25
TL; DR USE _blank
Das Zielattribut gibt an, wo das verknüpfte Dokument geöffnet werden soll.
USAGE: target="xyz"[don't forget double quotes]
_blank Opens the linked document in a new window or tab
_self Opens the linked document in the same frame as it was clicked (this is default)
_parent Opens the linked document in the parent frame
_top Opens the linked document in the full body of the window
framename Opens the linked document in a named frame
DA "_new" keines dieser Elemente ist, wird es unter "Framename" angezeigt. Wenn ein Benutzer erneut auf diesen Hyperlink klickt, wird kein neuer Tab geöffnet, sondern der vorhandene Tab aktualisiert. Wenn in _blank der Benutzer zweimal klickt, werden 2 neue Registerkarten geöffnet.
Ich weiß, dass dies eine alte Frage ist und die richtige Antwort, Verwendung _blank, mehrfach erwähnt wurde, aber die Verwendung <a target="somesite.com" target="_blank">Link</a>ist ein Sicherheitsrisiko .
Nach meinem Verständnis target = whateverwird nach einem Rahmen / Fenster mit diesem Namen gesucht. Wird es nicht gefunden, wird ein neues Fenster mit diesem Namen geöffnet. Wenn whatever == "_new", wird es so aussehen, als ob Sie es verwendet haben_blank außer .....
Die Verwendung eines der reservierten Zielnamen umgeht die "Suchphase". Bei target = "_blank"einem Dutzend Links werden also ein Dutzend leere Fenster geöffnet, target = whateverbei einem Dutzend Links jedoch nur ein Fenster. target = "_new"Bei einem Dutzend Links kann es zu unbeständigem Verhalten kommen. Ich habe es nicht in mehreren Browsern versucht, sollte aber nur ein Fenster öffnen.
Achtung - denken Sie daran, immer die "Anführungszeichen" anzugeben - zumindest in Chrome target=_blank(keine Anführungszeichen) ist NICHT DAS GLEICHE wie target="_blank"(mit Anführungszeichen).
Letzteres öffnet jeden Link in einem neuen Tab / Fenster. Ersteres (fehlende Anführungszeichen) öffnet den ersten Link, auf den Sie in einem neuen Tab / Fenster klicken, und überschreibt dann denselben Tab / Fenster bei jedem nachfolgenden Link, auf den Sie klicken (der auch mit den fehlenden Anführungszeichen benannt ist).
Sehr guter Punkt. Ich bin auf dieses Problem gestoßen, als ich das Leerzeichen nicht in Anführungszeichen gesetzt habe. Der Link, auf den ich auf meiner neu erstellten "leeren" Registerkarte geklickt habe, überschrieb das Schreiben von Inhalten auf dieser Registerkarte, anstatt eine neue Registerkarte zu öffnen. Wenn Sie das Leerzeichen in Anführungszeichen setzen, wird Chrome gezwungen, jedes Mal einen neuen Tab zu öffnen.
Steve Scherer
Stellen Sie außerdem sicher, dass Sie "_blank" und nicht "_BLANK" verwenden. Chrome ist eigentlich sehr pingelig und öffnet keinen neuen Tab mit "_BLANK" mehrmals.
Steve Scherer
5
_blank als Zielwert erzeugt jedes Mal ein neues Fenster.
_new erzeugt nur ein neues Fenster.
Außerdem ersetzt jeder Link, auf den mit dem Zielwert _new geklickt wird, die im zuvor erstellten Fenster geladene Seite.
Können Sie auflisten, welche Browser _newwie beschrieben ehren ?
Dima Tisnek
@qarma Dieses Verhalten ist wie in allen mir bekannten Browsern beschrieben, _newkein magisches Schlüsselwort, sondern nur ein Name. Wenn ein Fenster mit diesem Namen vorhanden ist, wird es wiederverwendet, andernfalls wird es geöffnet. Wenn Sie auf mehrere Links für dieses Fenster klicken, werden nur verschiedene Seiten im benannten Fenster geöffnet, anstatt mehrere neue Seiten zu öffnen.
Scragar
Die Spezifikation schlägt Browsern tatsächlich vor, dass sie ignoreZiele haben, die mit Unterstreichung beginnen, aber keine Schlüsselwörter sind. Es gibt keine Vorschläge, was ein Browser tun soll, wenn er einen ungültigen Zielnamen "ignoriert". Zu den Möglichkeiten gehören: (1) Behandle es wie "_blank". (2) Behandle es wie einen Fensternamen (als ob es keinen illegalen Unterstrich gäbe). (3) Behandle es wie einen explizit leeren Fensternamen. (4) Behandle es wie dort war kein Zielattribut. - Jeder Browser kann eine der Interpretationen auswählen.
Jesse Chisholm
0
Das Zielattribut eines Links zwingt den Browser, die Zielseite in einem neuen Browserfenster zu öffnen. Die Verwendung _blankals Zielwert erzeugt jedes Mal ein neues Fenster, während die Verwendung _newnur ein neues Fenster erzeugt, und jeder Link, auf den mit einem Zielwert von geklickt _newwird, ersetzt die Seite, die in das zuvor erzeugte Fenster geladen wurde
Die Verwendung von _New ist nützlich, wenn Sie an Seiten arbeiten, die gerahmt sind. Da target = "_ blank" nicht ausreicht und die Seite auf demselben Iframe öffnet ... ist target new die beste Lösung für Iframe-Seiten. Nur meine fünf Cent.
_new
hat keine besondere Bedeutung. Du könntest auch schreiben_white_little_lamb
._new
" keine besondere Bedeutung hat?target="_blank"
ohnerel="noopener"
eine potenzielle Sicherheitslücke darstellt. Suchen Sie nachrel="noopener"
, um mehr zu erfahren.Antworten:
Verwenden Sie "_blank"
Gemäß der HTML5-Spezifikation :
Das bedeutet, dass es kein solches Schlüsselwort wie
_new
in HTML5 und auch nicht in HTML4 (und folglich in XHTML) gibt . Das bedeutet, dass es überhaupt kein konsistentes Verhalten gibt, wenn Sie dies als Wert für das Zielattribut verwenden.Sicherheitsempfehlung
Wie Daniel und Michael in den Kommentaren hervorgehoben haben, sollten Sie bei der Verwendung eines Ziels,
_blank
das auf eine nicht vertrauenswürdige Website verweist, zusätzlich festlegenrel="noopener"
. Dies verhindert, dass die öffnende Site über JavaScript mit dem Opener in Konflikt gerät. Weitere Informationen finden Sie in diesem Beitrag .quelle
valid browsing context name
oder Schlüsselwort ist eine beliebige Zeichenfolge, die entweder einvalid browsing context name
oder ... ist"rel="noopener noreferrer"
aufgrund der Javascript-Angriffsanfälligkeit vontarget="_blank"
Mit
target="_blank"
wird der Browser angewiesen, eine neue Browserregisterkarte oder ein neues Browserfenster zu erstellen, wenn der Benutzer auf den Link klickt.Die Verwendung
target="_new"
ist gemäß den Spezifikationen technisch ungültig, aber soweit ich weiß, verhält sich jeder Browser gleich:Hinweis
target="_new"
verhält sich genauso wietarget="new"
und letzteres ist gültiges HTML, während ersteres ungültiges HTML ist.In HTML4 war das
target
Attribut veraltet. In HTML5 wurde diese Entscheidung rückgängig gemacht und ist wieder ein offizieller Teil der Spezifikation. Alle Browser unterstützentarget
unabhängig davon, welche HTML-Version Sie verwenden. Einige Validatoren kennzeichnen die Verwendung jedoch als veraltet, wenn Ihr Doctype HTML4 ist.quelle
target="_new"
, werden beide in derselben Registerkarte geöffnet, wobei einer den anderen überschreibt.TL; DR
USE _blank
Das Zielattribut gibt an, wo das verknüpfte Dokument geöffnet werden soll.
DA "_new" keines dieser Elemente ist, wird es unter "Framename" angezeigt. Wenn ein Benutzer erneut auf diesen Hyperlink klickt, wird kein neuer Tab geöffnet, sondern der vorhandene Tab aktualisiert. Wenn in _blank der Benutzer zweimal klickt, werden 2 neue Registerkarten geöffnet.
quelle
Ich weiß, dass dies eine alte Frage ist und die richtige Antwort, Verwendung
_blank
, mehrfach erwähnt wurde, aber die Verwendung<a target="somesite.com" target="_blank">Link</a>
ist ein Sicherheitsrisiko .Es wird empfohlen ( Leistungsvorteile ), Folgendes zu verwenden:
quelle
Dies wurde vielleicht schon einmal gefragt, aber:
"Jeder Link, der target =" _ new "angibt, sucht und findet dieses Fenster nach Namen und öffnet sich darin.
Wenn Sie target = "_ blank" verwenden, wird jedes Mal ein brandneues Fenster über dem aktuellen Fenster erstellt. "
von hier: http://thedesignspace.net/MT2archives/000316.html
quelle
target="_blank"
öffnet in den meisten Browsern einen neuen Tab.quelle
Nach meinem Verständnis
target = whatever
wird nach einem Rahmen / Fenster mit diesem Namen gesucht. Wird es nicht gefunden, wird ein neues Fenster mit diesem Namen geöffnet. Wennwhatever == "_new"
, wird es so aussehen, als ob Sie es verwendet haben_blank
außer .....Die Verwendung eines der reservierten Zielnamen umgeht die "Suchphase". Bei
target = "_blank"
einem Dutzend Links werden also ein Dutzend leere Fenster geöffnet,target = whatever
bei einem Dutzend Links jedoch nur ein Fenster.target = "_new"
Bei einem Dutzend Links kann es zu unbeständigem Verhalten kommen. Ich habe es nicht in mehreren Browsern versucht, sollte aber nur ein Fenster öffnen.Zumindest interpretiere ich die Regeln so.
quelle
Achtung - denken Sie daran, immer die "Anführungszeichen" anzugeben - zumindest in Chrome
target=_blank
(keine Anführungszeichen) ist NICHT DAS GLEICHE wietarget="_blank"
(mit Anführungszeichen).Letzteres öffnet jeden Link in einem neuen Tab / Fenster. Ersteres (fehlende Anführungszeichen) öffnet den ersten Link, auf den Sie in einem neuen Tab / Fenster klicken, und überschreibt dann denselben Tab / Fenster bei jedem nachfolgenden Link, auf den Sie klicken (der auch mit den fehlenden Anführungszeichen benannt ist).
quelle
Außerdem ersetzt jeder Link, auf den mit dem Zielwert _new geklickt wird, die im zuvor erstellten Fenster geladene Seite.
Sie können hier klicken, wann Sie _blank oder _new verwenden müssen , um es selbst auszuprobieren.
quelle
_new
wie beschrieben ehren ?_new
kein magisches Schlüsselwort, sondern nur ein Name. Wenn ein Fenster mit diesem Namen vorhanden ist, wird es wiederverwendet, andernfalls wird es geöffnet. Wenn Sie auf mehrere Links für dieses Fenster klicken, werden nur verschiedene Seiten im benannten Fenster geöffnet, anstatt mehrere neue Seiten zu öffnen.ignore
Ziele haben, die mit Unterstreichung beginnen, aber keine Schlüsselwörter sind. Es gibt keine Vorschläge, was ein Browser tun soll, wenn er einen ungültigen Zielnamen "ignoriert". Zu den Möglichkeiten gehören: (1) Behandle es wie "_blank". (2) Behandle es wie einen Fensternamen (als ob es keinen illegalen Unterstrich gäbe). (3) Behandle es wie einen explizit leeren Fensternamen. (4) Behandle es wie dort war kein Zielattribut. - Jeder Browser kann eine der Interpretationen auswählen.Das Zielattribut eines Links zwingt den Browser, die Zielseite in einem neuen Browserfenster zu öffnen. Die Verwendung
_blank
als Zielwert erzeugt jedes Mal ein neues Fenster, während die Verwendung_new
nur ein neues Fenster erzeugt, und jeder Link, auf den mit einem Zielwert von geklickt_new
wird, ersetzt die Seite, die in das zuvor erzeugte Fenster geladen wurdequelle
Um einen Link in einem neuen Tab / Fenster zu öffnen, verwenden Sie
<a target="_blank">
.value
_blank
= gezielter Browserkontext: ein neuer: Tab oder Fenster, abhängig von Ihren Browsing-EinstellungenWert
_new
= ungültig; Kein solcher Wert in HTML5 für das Zielattribut eines ElementsZielattribut mit all seinen Werten für ein Element: Videodemo
quelle
Die Verwendung von _New ist nützlich, wenn Sie an Seiten arbeiten, die gerahmt sind. Da target = "_ blank" nicht ausreicht und die Seite auf demselben Iframe öffnet ... ist target new die beste Lösung für Iframe-Seiten. Nur meine fünf Cent.
quelle