Ich erinnere mich, dass ich irgendwo gelesen habe, dass es in HTML5 nicht mehr in Ordnung war, es target="_blank"
in HTML5 zu verwenden, aber ich kann es jetzt nicht finden.
Ist es in Ordnung, weiter zu verwenden target="_blank"
?
Ich weiß, dass dies im Allgemeinen als schlechte Idee angesehen wird, aber es ist der einfachste Weg, ein neues Fenster für so etwas wie ein PDF zu öffnen, und Sie müssen sich auch nicht auf JavaScript verlassen.
javascript
html
window
Darryl Hein
quelle
quelle
target
et al. existieren. Manchmal sind sie eine Notwendigkeit. Eine dynamisch generierte Seite mit Stateful JS, bei der beispielsweise ein Iframe weniger wünschenswert ist als eine neue Registerkarte (z. B. Anzeigen einer PDF-Datei, wie im OP angegeben). Oder wenn eine sichere Site (z. B. eine Bank) Sie an einen externen Link sendet, die Verwendung der Schaltfläche "Zurück" jedoch aufgrund des Ablaufs des Inhalts nicht zulässt. Wie alle Dinge ist dieses HTML-Attribut keine "schlechte Idee", aber es sollte mit Bedacht und Sorgfalt verwendet werden, wie bei jeder Bibliothek, Klasse, Funktion und Eigenschaft in der gesamten Programmierung.Antworten:
Es sieht so aus, als wäre
target="_blank"
es noch in Ordnung. Es wird im neuesten HTML5-Entwurf als Schlüsselwort für den Browserkontext aufgeführt .quelle
target="_blank"
Jedes Mal, wenn der Benutzer auf den Link klickt, wird ein neues Fenster geöffnet . Es sei denn, dies ist wirklich das, was Sie möchten (und dies ist selten der Fall). Ziehen Sie die Verwendung in Betracht,target="somethingUnique"
damit der Benutzer nur ein Fenster öffnet, selbst wenn er mehrmals auf den Link klickt. Es macht für eine viel schönere UX.target="_blank"
für gut halte, ist das Teilen von Schaltflächen.Es ist in Ordnung zu benutzen
target="_blank"
; Dies wurde in XHTML beseitigt, da durch das Targeting neuer Fenster in den meisten Browsern immer die Popup-Warnung angezeigt wird. XHTML zeigt bei einer Validierung immer einen Fehler mit dem Zielattribut an.HTML 5 brachte es zurück, weil wir es immer noch verwenden. Es ist unser Freund und wir können nicht loslassen.
Lass niemals los.
quelle
Obwohl das
target="_blank"
ist akzeptabel in HTML5 , versuche ich persönlich nie , es zu benutzen (auch für PDFs in einem neuen Fenster zu öffnen).HTML sollte Bedeutung und Inhalt definieren . Fragen Sie sich: "Würde sich die Bedeutung des
a
Elements ändern, wenn dastarget
Attribut entfernt würde?" Wenn nicht, sollte der Code nicht in den HTML-Code aufgenommen werden. (Eigentlich bin ich überrascht, dass das W3C es behalten hat ... ich denke, sie können wirklich einfach nicht loslassen.)Browser Verhalten , insbesondere interaktives Verhalten mit dem Benutzer , sollte mit clientseitigen Skriptsprachen wie JavaScript implementiert werden. Da sich der Browser auf eine bestimmte Weise verhalten soll, dh ein neues Fenster öffnen soll, sollten Sie JS verwenden. Wie Sie bereits erwähnt haben, muss sich der Browser für dieses Verhalten auf JS verlassen. (Wenn sich Ihre Site jedoch ordnungsgemäß verschlechtert oder schrittweise verbessert oder was auch immer , sollte dies dennoch in Ordnung sein. Die Benutzer mit deaktiviertem JS werden nicht viel verpassen.)
Davon abgesehen ist keines davon die richtige Antwort. Irgendwo da draußen ist die Meinung, dass das Öffnen eines Links letztendlich vom Endbenutzer entschieden werden sollte . Nehmen Sie dieses Beispiel.
Davon abgesehen sollten Webentwickler absolut klarstellen, wohin ihre Links führen, auf welche Arten und / oder Formate von Quellen sie verweisen und was sie tun. Tooltips können Ihre Freunde sein (es sei denn, Sie verwenden ein Tablet oder ein Telefon; geben Sie diese in diesem Fall auf der mobilen Website an). Wir alle wissen, wie scheiße es ist, an einen Ort gebracht zu werden, den wir nicht erwartet hatten, oder etwas zu bewirken, was wir nicht wollten.
quelle
Dies ist auch der einfachste Weg, um Nicht-Windows-Benutzer zu ärgern. PDF-Dateien lassen sich problemlos in Browsern auf anderen Plattformen öffnen. Das Öffnen eines neuen Fensters bringt auch den Navigationsverlauf durcheinander und erschwert die Arbeit auf kleineren Plattformen wie Smartphones.
Öffnen Sie KEINE neuen Fenster für Dinge wie PDF, nur weil ältere Windows-Versionen defekt waren.
quelle
Die meisten Webentwickler verwenden
target="_blank"
nur zum Öffnen von Links in neuen Registerkarten. Wenn Sietarget="_blank"
nur Links in einem neuen Tab öffnen, ist dieser für einen Angreifer anfällig. Wenn Sie einen Link in einer neuen Registerkarte öffnen (target="_blank"
), kann die Seite, die in einer neuen Registerkarte geöffnet wird, auf die ursprüngliche Registerkarte zugreifen und deren Position mithilfe derwindow.opener
Eigenschaft ändern .Javascript-Code:
Verhütung:
quelle
Während das Ziel in HTML5 noch akzeptabel ist, wird es nicht bevorzugt. Verwenden Sie zum Verknüpfen mit einer PDF-Datei das Download- Attribut anstelle des Zielattributs.
Hier ist ein Beispiel:
Wenn der ursprüngliche Dateiname für die eindeutige Speicherung von Dateien codiert ist, können Sie einen benutzerfreundlichen Downloadnamen angeben, indem Sie dem Downloadattribut einen Wert zuweisen:
Beachten Sie, dass die meisten modernen Browser diese Funktion zwar unterstützen, einige jedoch möglicherweise nicht. Weitere Informationen finden Sie unter caniuse.com .
quelle
Es ist sicher!
http://www.w3.org/TR/2010/WD-html5-20100624/text-level-semantics.html#the-a-element
quelle
Mit jquery können Sie dies folgendermaßen tun. Dadurch wird es in einem neuen Fenster geöffnet:
quelle
Ich denke, das Zielattribut ist für das
<link>
Element veraltet , nicht<a>
, wahrscheinlich haben Sie deshalb gehört, dass es nicht mehr verwendet werden soll.quelle