Lässt Sie das ein wenig mit dem Auge zucken? Wie... es ist ein Tippfehler. Es sollte target="_blank" mit einem Unterstrich sein, um den Wert zu beginnen. Wie in...
<a target="_blank" href="https://codepen.io">
Open CodePen in a New Tab
</a>
Nun, das ist die richtige Syntax!
Im Falle von `target="blank"` (ohne Unterstrich) ist `blank` nur ein Name. Es könnte alles sein. Es könnte `target="foo"` sein oder, um den Zweck hier anzudeuten: `target="neue-links-in-diesem-bereich-öffnen"`.
Der Unterschied
target="_blank"ist ein spezielles Schlüsselwort, das Links jedes Mal in einem neuen Tab öffnet.target="blank"öffnet den ersten angeklickten Link in einem neuen Tab, aber alle zukünftigen Links, dietarget="blank"teilen, werden in diesem selben neu geöffneten Tab geöffnet.
Das wusste ich nie! Ich verdanke dieser Tweet-Erklärung.
Ich habe eine sehr einfache Demo-Seite erstellt, um die Funktionalität zu zeigen (Code). Sehen Sie zu, wie sich ein neuer Tab öffnet, wenn ich auf den ersten Link klicke. Dann öffnen nachfolgende Klicks von beiden auch den Link in diesem neuen zweiten Tab.
Warum?
Ich denke, die Anwendungsfälle hier sind selten. Verdammt, ich bin nicht einmal ein großer Fan von target="_blank". Aber hier ist einer, den ich mir vorstellen könnte: Dokumentation.
Nehmen wir an, Sie haben eine Web-App, in der die Leute aktiv arbeiten. Es könnte sinnvoll sein, Links zur Dokumentation aus dieser App in einem neuen Tab zu öffnen, damit sie nicht von der aktiven Arbeit wegnavigieren. Aber vielleicht denken Sie, dass sie nicht für jeden Dokumentationslink einen neuen Tab benötigen. Sie könnten es so machen...
<a target="codepen-documentation"
href="https://blog.codepen.io/documentation/">
View CodePen Documentation
</a>
<!-- elsewhere -->
<a target="codepen-documentation"
href="https://blog.codepen.io/documentation/">
About Asset Hosting
</a>
Zusammen mit diesem Element betrachten Sie das HTML-Element
<base>: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/baseDieses Element stammt aus der Zeit der Frames und ist jetzt nicht mehr sehr nützlich, AUSSER in Ihrem letzten Beispiel.
Wenn Sie eine vollständige App erstellen, in der die Dokumentationsartikel in einem bestimmten Fenster geöffnet werden sollen, ODER wenn Sie möchten, dass alle Links auf der Seite in einem neuen Fenster geöffnet werden, ist das
<base>-Element sehr nützlich.Früher, zur Zeit der Frames, wurde es verwendet, um dem Browser mitzuteilen, welcher Frame mit einem angeklickten Link aktualisiert werden soll.
Ein Frame mit der Navigation verwendet den Link
<a href="#" target="content">, um den Inhaltsframe<frame name="content">zu aktualisierenGut zu wissen.
Jeder, der in den 1990er oder frühen 2000er Jahren intensiv mit Frames/Framesets gearbeitet hat, kennt den Unterschied zwischen target=”_blank” und target=”blank/something”. Das Gnadenwerk der frühen Geburt.
Ich denke, Sie spielen mit dem Feuer, wenn Sie „blank“ verwenden, es ist zu verwirrend nah am speziellen Schlüsselwort „_blank“. Leute werden sie verwechseln.
Denken Sie daran, dass Targets ein Überbleibsel aus der Zeit vor Ajax sind und die Leute Frames verwendeten, um Teile der Seite mit Inhalten vom Server zu aktualisieren. Targets waren dazu gedacht, semantische Namen wie „Warenkorb“ oder Orte wie „rechte Seitenleiste“ zu haben. Einen Frame oder ein Fenster später „blank“ zu nennen, ergibt nicht viel Sinn.
Seien Sie sich auch bewusst, dass das Öffnen eines neuen Tabs/Fensters mit target=”blank” potenzielle Datenschutz- und Sicherheitsrisiken birgt (_obwohl ich glaube, dass neuere Browser jetzt standardmäßig rel=”noopener” einstellen).
Alex Yumashev von Jitbit hat eine ausgezeichnete Erklärung des Problems (der Probleme).
Target=”_blank” – die am meisten unterschätzte Schwachstelle aller Zeiten
Das weiß ich schon seit über einem Jahrzehnt, ich kann nicht glauben, dass das heute das Thema ist
Wenn ich keine Artikel bloggen würde, weil ich befürchte, dass einige Leute es bereits wissen, gäbe es auf dieser Seite null Blogbeiträge.
Ich denke, der Punkt ist, dass jeden Tag Millionen von Babys geboren werden und jeden Tag tausende von Menschen etwas Neues lernen. Deshalb sind Beiträge mit einfachen und leicht verständlichen Informationen aktuell.
Wenn Sie die initiale Seite neu laden oder zwei Instanzen davon öffnen, öffnet „_blank“ zwei verschiedene „neue Tabs“. Gibt es eine Möglichkeit, den neuen Inhalt nur in einem einzigen geöffneten neuen Tab zu halten?
Das wusste ich nicht, da ich neu in der Webentwicklung bin. Danke, dass Sie diese Informationen geteilt haben. Ich freue mich darauf, mehr zu erfahren.
Ich habe eine Website, die ich seit den Anfängen erstellt habe (ungefähr 2009), auf der ich all meine Tagebuch-bezogenen Dinge aufbewahrt habe. Sie funktioniert bis heute und die Seite verwendet Framesets. Eines der coolsten Dinge damals.
Man könnte argumentieren, dass „die frühen Tage“ das gesamte Jahrzehnt der 1990er Jahre umfassen könnten, aber ich glaube, dass niemand mit Geschichtskenntnis das Jahr 2009 als „frühe Tage“ für irgendetwas bezeichnen würde, es sei denn, es wäre das Jahr, in dem er geboren wurde.
Hallo! Wenn Sie index.html in zwei praktisch identischen Tabs öffnen, öffnen sich die Links mit target=”_blank” nicht im selben Tab, sondern tatsächlich in zwei verschiedenen Tabs für die beiden ursprünglichen Tabs.
Ich hoffe, ich habe es gut erklärt. :)
Gibt es eine Möglichkeit, Links von verschiedenen Seiten (wenn ich viele Instanzen derselben Seite habe) immer genau in einem neuen Tab öffnen zu lassen?
Das obige Beispiel gilt für
target=blank(ohne Unterstrich), nicht fürtarget=_blank(mit Unterstrich). Außerdem,Danke für die Antwort! Ich habe den Unterschied zwischen „blank“ und „_blank“ verstanden. Wenn ich zwei Webseiten website.com geöffnet habe, die für alle hrefs auf website.com target = „newTabEveryTime“ verwendet, werden zwei neue Tabs für die beiden Instanzen von website.com geöffnet. Hat das etwas mit tabId zu tun? Ich würde wirklich gerne eine Möglichkeit finden, damit ein href von jeder Seite von website.com (wenn man mit z.B. 15 geöffneten Tabs mit website.com-Inhalt arbeitet) immer nur in einem neuen Tab geöffnet wird.
Dies wurde hauptsächlich verwendet, um Seiten mit verschiedenen iframes zu erstellen. Ich habe dies getan, um eine einfache statische Website mit Menü und ohne PHP in den 90er Jahren zu erstellen.
Es ist gut erklärt https://www.w3schools.com/html/html_iframe.asp
Vergessen Sie nicht die Sicherheitsbedenken, wenn Sie das target-Attribut verwenden, wie erklärt in
https://medium.com/sedeo/how-to-fix-target-blank-a-security-and-performance-issue-in-web-pages-2118eba1ce2f
Ich dachte, das target-Attribut sei veraltet, aber ich sehe, sie haben das rückgängig gemacht. Ich habe mich gefragt, warum eine Seite wie diese über ein veraltetes Attribut schreiben würde ... schwer Schritt zu halten, danke für die Erleuchtung.
Ich denke immer noch, dass es ein Attribut der Vergangenheit ist, JavaScript war einfach zu implementieren.
Vielleicht hat ein Framework es benötigt, weiß das jemand?
Das beste reale Beispiel aus dem Jahr 2021 dafür, das mir einfällt, stammt direkt aus WordPress!
Der Vorschau-Link im Beitragseditor verwendet
target="wp-preview-1234", wobei1234die Beitrags-ID ist. Das bedeutet, dass es immer nur einen Tab mit der Vorschau eines bestimmten Beitrags gibt. Wenn Sie mehrmals eine Vorschau anzeigen, wird immer der vorhandene benannte Tab aktualisiert, anstatt einen zweiten, dritten oder vierten Tab zu erstellen.(Nebenthema: Ich habe Leute versehentlich mehrere Bearbeitungsbildschirme desselben Beitrags erstellen sehen, indem sie eine Vorschau geöffnet und dann auf den Link „Seite bearbeiten“ in der Admin-Leiste geklickt haben. Ich frage mich, ob es möglich ist, dass eine Seite ihren eigenen Tab benennt, wenn sie geöffnet wird – nicht als neuer Tab –, damit die Bearbeitungslinks auch verhindern können, dass Leute dieselbe Seite in mehreren Tabs bearbeiten. Ich vermute nein, aber vielleicht gibt es da Tricks, die es möglich machen.)