JavaScript Links in genau einem Tab öffnen

ryk

BAZINGA!
ID: 66395
L
4 Mai 2006
3.313
115
Hallo,

ich möchte folgendes umsetzen und bin auf der Suche nach der richtigen Strategie und hoffe mich kann hier jemand auf den richtigen Pfad führen :mrgreen:

Ich habe eine Hauptseite mit mehreren Links. Jeder Link soll in einem neuen Tab bzw. Fenster geöffnet werden. Wenn bereits einer der Links in einem neuen Tab geöffnet ist und es wird auf der Hauptseite eine anderer geklickt soll dieser im selben Tab wie der existierende geladen werden, sodass alle Links auf der Hauptseite im gleichen Tab geöffnet werden. Es soll also zu keine Zeit mehr als das Hauptfenster und das Nebenfenster (in dem die Links geladen werden) offen sein.

Ist das technisch möglich und falls ja, hat jemand einen Tipp?

Grüße
ryk
 
Zuletzt bearbeitet:
Moin,

Tab oder nicht Tab is die Hoheit des Benutzers... das geht dich nix an :p

Das W3C hat einen Entwurf in CSS3, womit sowas steuerbar wird (https://www.w3.org/TR/css3-hyperlinks/#the-target-name), allerdings hast du damit aktuell 0% Support bei den Browsern.

Und eine persönliche Prognose: Da es so Leute gibt, wie dich, die eben das ausnutzen wollen und dem Benutzer Vorschriften über sein Browsing-Verhalten zu machen, wird es nicht lange dauern, bis es entsprechende Browsererweiterungen gibt, um diese Hoheit wieder zurückzugewinnen, sollte der Entwurf implementiert werden.

Mein Tipp: Interpretier diesen Post kurz als "Nein!" und vergiss den Gedanken und setze deine Energie und Ideen lieber in andere Sachen, z.B. neue HTML5-Elemente und eine damit bessere Struktur der Webseite :)
 
Das hat doch schon in der HTML-Steinzeit funktioniert 8O

index.html
HTML:
<!DOCTYPE html>
<html>
<head>
    <title>Testseite</title>
    <meta charset="UTF-8">
</head>
<body>
<a href="unter1.html" target="gruenkohl">Linkziel 1</a>
<a href="unter2.html" target="gruenkohl">Linkziel 2</a>    
</body>
</html>
unter1.html
HTML:
<!DOCTYPE html>
<html>
<head>
    <title>Linkziel 1</title>
    <meta charset="UTF-8">
</head>
<body>
Linkziel 1    
</body>
</html>
unter2.html
HTML:
<!DOCTYPE html>
<html>
<head>
    <title>Linkziel 2</title>
    <meta charset="UTF-8">
</head>
<body>
Linkziel 2    
</body>
</html>

Ist aber kein JS und kann leicht umschifft werden...
Solltest du JS verpflichtend machen müsstest du prüfen ob Addons die onclick-Events in Hyperlinks umwandeln installiert sind. DAS wäre doch mal ne Herausforderung...

Ansonsten:
[...]Tab oder nicht Tab is die Hoheit des Benutzers[...]
 
Das is Einstellungssache am Firefox, sowie abhängig, wie du den Link klickst (Shift-Taste gedrückt? Strg+Taste gedrückt? linke oder mittlere Maustaste?).

Teste es: Bau ne Seite mit 2 Links, wobei einer einen neuen Tab öffnet und der andere ein neues Fenster. Geht nur eins von beiden und - wie gesagt - das liegt an den Benutzereinstellungen am Browser selber.
 
Hier hat sich ja eine rege Diskussion ergeben. Danke für eure Antworten soweit. Was tleilax gepostet hat, entspricht so ziemlich genau dem was ich gesucht habe.

Wozu so kompliziert gedacht? Verzichte auf den HTML-Fallback und lass die URLs nur per JavaScript öffnen. Speicher eine Referenz auf das geöffnete Fenster in Deinem JS-Code, damit Du immer prüfen kannst, ob es noch offen ist bzw. es ggf. neu öffnen kannst.

Beispiel: :arrow: https://jsbin.com/retatamo/6/edit?html,css,js,output
 
Für solche Leute wie mich disqualifiziert sich die Seite dadurch sofort! 8O

Ich klicke die meisten Links nämlich explizit mit mittlerer Maustaste, wenn ich gezielt im neuen Tab laden möchte. Aus meiner Sicht sind das dann Deadlinks, weil sich einfach nix tut, wenn ich drauf klicke. Beim Maushover seh ich keine URL, noch ein sehr hässlicher Punkt, wenn ein Webmaster die Ziel-URLs verstecken tut.

(Nur als Anregung, ich bin mit meinem Browsing-Verhalten sicherlich nicht das Maß aller Dinge)

... und das Barrierefreiheitsargument wäre auch noch da ;)
 
Ich würde sowas im Regelfall auch nicht bauen, aber die Anforderung klingt ja schon recht spezifisch und auch irgendwie nach 'nem Paid4-Einsatzbereich. Da ist Barrierefreiheit oder Semantik wohl eher zweitrangig. ;)

Eigentlich sehe ich's ja genauso wie Du, tH, aber manchmal musst man halt ein bisschen um die Ecke denken, um den Anforderungen gerecht zu werden. Wie oft musste ich für Kunden schon kleine Scheusslichkeiten begehen, da es explizit gefordert war (<blink>-Tag war da nur der Anfang).
 
... drum lieber einmal zuviel rumheulen, wie doof das doch is, als einmal zu wenig :biggrin: Ich geh immer davon aus, dass es vielleicht Webentwickler gibt (besonders solche, die sich im Netz helfen lassen oder Code woanders aus Google und Tutorials beziehen), die es einfach nicht besser wissen und denken, das sei voll ok.

Am Ende wirds irgendwo professionell eingebaut und live gestellt und dann laufen die Telefone heiß, weil die Kunden berichten, die Webseite funktioniert nicht :ugly: