Tab im Hauptfenster öffnen

Im Web ist es leider sehr verbreitet, dass man den Verweisen als Ziel ein _blank mitgibt, damit sich der Link, meistens auf eine fremde Seite, in einem neuen Fenster öffnet. Mit dem Zeitalter der Tabs ließen die Browser dann die Möglichkeit zu, dass man Links mit target="_blank" in einem Tab geöffnet werden. Das scheint erst einmal beide Seiten zufriedenzustellen. Webmaster haben weiterhin die Möglichkeit, dieses zu tun und Besucher können ein neues Fenster verhindern, wenn sie dies wünschen.

Standardmäßig war der Firefox immer so eingestellt, dass Links mit target="_blank" in einem neuen Fenster aufgehen. Aber mittlerweile wird der FireFox so ausgeliefert, dass sich die neuen Fenster nur noch in einem Tab öffnen. Das mag augenscheinlich erst einmal in Ordnung sein.

Es gibt aber auch hier wieder Menschen, die daran etwas auszusetzen haben. Deren Problem ist nämlich, dass sie zum Beispiel ein kleine Fenster mit JavaScript geöffnet haben und darin soll dann ein Verweis mit target="_blank" stehen. Der FireFox öffnet jetzt aber diesen Link direkt in dem Tab in dem möglicherweise zu kleinen PopUp.

Was müssen wir also machen, damit sich der Tab im Hauptfenster des Browsers öffnet? Damit der Browser den Tab im Hauptfenster öffnet, muss der Link in dem Hauptfenster geklickt werden. Da wir aber schlecht dem Besucher mitteilen können, dass er, wenn er den Link besuchen möchte, diesen im Hauptfenster suchen soll, müssen wir uns überlegen, wie wir diesen Klick simulieren können. Für diese Aufgabe ist JavaScript sehr prädestiniert, da es eine clientseitige Sptache ist.

In einem Nachschlagewerk JavaScript findet mehr sehr schnell den Befehl click(). Dieser ist auf bestimmte Elemente von HTML anwendbar. Click() funktioniert ab Netscape 2.0 und Internet Explorer 3.0. Es scheint also eine Möglichkeit zu geben, diesen Klick zu simulieren.

Was muss in den Quellcode eingefügt werden, damit sich ein Tab im Hauptfenster öffnet? In den HTML-Code des Hauptfensters müssen wir ein Formular integrieren mit target"_blank" und als action die URI der Webseite, die wir aufrufen möchten. Dieser Code muss immer auf der gesamten Webseite sein, damit der Klick in jedem Dokument funkioniert.

  1. <form name="formular" action="http://www.google.de" target="_blank">
  2.    <input type="submit" name="absenden" value="Weiter" />
  3. </form>

Da so ein Button auf der Webseite nicht sehr schön aussieht und auch optisch gar nicht benötigt wird, kann man das ganze in ein Div-Tag packen und dieses mit display:none ausblenden. Die Funktionsweise wird davon nicht beeinträchtigt.

Jetzt müssen wir nur noch dieses Formular mittels click() auslösen und schon wird sich ein neues Fenster öffnen, welches vom Hauptfenster ausgeht. Dieses JavaScript sieht wie folgt aus:

  1. function doit() {
  2.   window.opener.document.formular.absenden.click();
  3. }

Die Funktion doit wird dann auf einem Link im PopUp mit onclick ausgelöst. Es geht natürlich auch jedes andere HTML-Element.

Das Script wurde mit FireFox 2, IE 6, IE 7 und Opera 9 getestet und als lauffähig eingestuft.