2010-11-22 12 views
6

Ich möchte sicherstellen, dass in allen Tab-fähigen Browsern, wenn ein Benutzer auf einen Link klickt, es in einem neuen Tab öffnet. Alles, was ich bis jetzt habe, ist das Ziel-Schlüsselwort im Anker, aber gibt es ein neues HTML-Attribut, das diese Funktion unterstützt?Wie erzwinge einen Link in einem neuen Tab mit Javascript öffnen

+0

Und 'target =" _ blank "' funktioniert nicht für Sie? – Alex

+2

mm gute Frage, aber ich denke nicht, dass es eine Lösung für Ihre Frage gibt. In einigen Browsern target = "_ blank" öffnet sich ein neues Fenster Ich denke – Michel

+0

Ich denke das hängt auch von deiner Browsereinstellung ab. In FF können Sie, ob die Seite in einem neuen Tab oder Fenster öffnen. Die gleichen Einstellungen müssen in anderen Browsern verfügbar sein. Leider sind sie in Javascript nicht überschaubar. –

Antwort

5

Es gibt keine Garantie dafür, da Sie das Fensteröffnungsverhalten und die Tab-Optionen innerhalb der Browser-Optionen ändern können.

Das Beste, was Sie tun können, ist, Ihren Code mit target="_blank" oder window.open() zu schreiben.

+2

Meinten Sie "das Beste, was Sie tun können"? :-) – MaxVT

+0

Oder "das Meiste, was du tun kannst". –

+0

@ MaxVT, @ T.J. Crowder: Oh, ich habe das Gegenteil gesagt. Korrigiert, danke Jungs :) – Sarfraz

1

Ihre beste Wette ist <a href="..." target="_blank"></a>.

Es gibt keine standardisierte semantische Möglichkeit, dem Browser mitzuteilen, dass er eine neue Registerkarte öffnen soll. Dies liegt daran, dass nicht alle Browser Registerkarten enthalten. Nehmen Sie die meisten mobilen Browser, zum Beispiel haben sie keine Registerkarten.

Es gibt auch keine herstellerspezifische Vorgehensweise, die ich kenne.

1

Nein, es gibt kein HTML-Attribut, das Tab-fähige Browser anweist dies zu tun, wenn Sie können target entweder "_blank" für neues Fenster oder einen bestimmten Namen, wenn Sie ein Fenster wiederverwenden möchten. Es wäre sicher nett, aber es gibt nicht einmal etwas in dem aktuellen HTML5-Arbeitsentwurf, zumindest nicht unter a oder target (z. B. gibt es keine "context name" für "neue Registerkarte").

Bearbeiten: Aber look at (und vote up) Dr.Molle's answer. CSS zur Rettung (eines Tages)!

3

Es gibt eine CSS3-Eigenschaft target-new

Leider ist es noch nicht von jedem Browser unterstützt (ich weiß nicht vorhanden). Aber vielleicht könnten Sie es bereits für die zukünftige Verwendung implementieren.

Verwandte Themen