Startseite (Weblog) · Fachartikel zur Webentwicklung · Einführung in JavaScript
Diese Anleitung befasst sich mit der technischen Umsetzung sogenannter Popup-Fenster und möchte darüber hinaus auf mögliche Probleme hinweisen und Alternativen erörtern. Obwohl der JavaScript-Einsatz den Bedienkomfort einer Website steigern kann, wird die Methode window.open() zum Öffnen neue Browserfenster meist in einer Weise verwendet, die die Seitenbesucher verärgert und abschreckt.
Es soll gezeigt werden, wie JavaScript-Popups gelöst werden, um dem Benutzer die kleinstmöglichen Probleme zu bereiten. Dies kann letztlich bedeuten, der Benutzbarkeit halber auf Popups zu verzichten. Nachfolgend werden verschiedene Lösungsmöglichkeiten vorgestellt und deren Vor- und Nachteile diskutiert. Es wird empfohlen, den Artikel bis zum Ende zu lesen und nicht eine Lösung zu übernehmen, ohne die aufgeworfenen Probleme zu betrachten. Die als Anmerkung gekennzeichneten Abschnitte dienen lediglich zur Vertiefung und können beim Lesen übersprungen werden.
Zum aktiven Verständnis dieses Artikels wird Grundlagenwissen über HTML und JavaScript empfohlen.
Man möchte auf einer Website einen Link zu einem Dokument oder einer anderen Quelle setzen. Dieses Dokument soll, sofern möglich, in einem neuen Browserfenster geöffnet werden.
Dies allein wäre mit dem Attribut target="_blank" möglich (siehe SELFHTML: Zielfenster für Verweise bestimmen):
<a href="foo.html" target="_blank">Linktext</a>
Eine weitere Anforderung ist, dass man das Aussehen des Fensters verändern möchte. Das heißt, man möchte die Höhe, Breite und die Anzeige der Menü- und Symbolleisten vorgeben beziehungsweise festlegen können. Deshalb kommt das Attribut target="_blank" nicht in Frage, da es ein neue Browserinstanz gemäß den jeweiligen Benutzereinstellungen startet.
Man nutzt die JavaScript-Methode window.open(), mit der sich ein neues Browserfenster öffnen lässt. Der Methodenaufruf wird in einer Funktion mit dem beispielhaften Namen oeffnefenster untergebracht. Diese Funktion wird in einem script-Element im head-Element (Dokumentkopf) des HTML-Dokuments definiert:
<script type="text/javascript">
function oeffnefenster (url) {
fenster = window.open(url, "fenster1", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes");
fenster.focus();
}
</script>
Der Funktionsaufruf wird in das href-Attribut (Verweisziel) des Hyperlinks eingetragen, bei dessen Aktivierung das Fenster geöffnet werden soll, eingeleitet durch javascript: (siehe Event-Handler javascript: bei Verweisen). Die Adresse des Zieldokuments wird der Funktion als String-Parameter übergeben.
<a href="javascript:oeffnefenster('foo.html');">Linktext</a>
Durch verschiedene Angaben im dritten Parameter von window.open() kann das Aussehen des Fensters beeinflusst werden, beispielsweise die Größe und die Anzeige von Navigations- und Symbolleisten. Eine Liste der möglichen Fenstereigenschaften findet sich in der Referenz zur JavaScript-Objektmethode window.open(). Die einzelnen Merkmalsangaben werden durch Kommas getrennt.
Im obigen Beispielaufruf von window.open() sind folgende Fenstereigenschaften angegeben: width=600,height=400,status=yes,scrollbars=yes,resizable=yes. Das bedeutet, es soll ein Fenster mit der Größe 600 mal 400 Pixel geöffnet werden. Es soll eine Statusleiste eine Scrollbars (Bildlaufleisten) angezeigt werden. Außerdem ist das Fenster in seiner Größe vom Benutzer veränderbar (resizable).
In der globalen JavaScript-Variable fenster wird das neue Fensterobjekt gespeichert (Objekttyp window). Über diese Variable kann man auf Objekte, Funktionen und Variablen des im Fenster geöffneten Dokuments zugreifen. Die Artikel Kommunikation zwischen Fenster und Frames und Zugriff auf verschachtelte Fensterobjekte erläutern dies näher.
In der Regel wird ein Popup-Fenster beim ersten Öffnen automatisch in den Vordergrund geholt. Wenn bereits ein Zweitfenster geöffnet ist und der Benutzer im Ursprungsfenster einen weiteren Popup-Link aktiviert, wird die Zielseite in zwar im Zweitfenster geöffnet, jedoch bleibt dieses in manchen Fällen im Hintergrund. Zur Abhilfe wird das Popup-Fenster mithilfe der focus()-Methode in den Vordergrund geholt: fenster.focus();
Das bedeutet bei den gängigen Benutzeroberflächen, dass das Fenster sichtbar in den Vordergrund tritt und die anderen Fenster überlappt beziehungsweise der zugehörige Tab – ein in das Fenster integrierte Browserinstanz – ausgewählt wird. Dadurch wird verhindert, dass der Benutzer möglicherweise nicht bemerkt, dass sich die Adresse eines Zweitfensters im Hintergrund ändert.
Fenster öffnen. Wählen Sie den Link an, um das Fenster zu öffnen.
Der obige Ansatz erfordert, dass der Browser des Anwenders JavaScript unterstützt und die JavaScript-Ausführung aktiviert und im Hinblick auf Popups nicht eingeschränkt ist. Wenn das nicht der Fall ist, hängt der Anwenderfest: Die gewünschte Seite wird nicht aufgerufen, der Hyperlink funktioniert nicht. Wer nun keine Lust hat, die Zieladresse von Hand einzutippen oder den Quellcode zu durchforsten, resigniert und wünscht die Seite zum Teufel.
Eine gewisse Gruppe der Websurfer benutzt Zugangsarten, welche JavaScript nicht unterstützen oder in welchen JavaScript deaktiviert ist. Halbwegs wissenschaftliche und repräsentative Erhebungen existieren nicht, sodass sich keine verlässlichen Zahlen angeben lassen. Die verbreiteten Statistiken widersprechen sich eklatant. Manche zählen annähernd null Prozent »Besuche« ohne JavaScript-Unterstützung, andere sprechen von 15 Prozent. Dabei werden in der Regel Messverfahren verwendet, die prinzipiell nicht alle Fälle angemessen berücksichtigen können. Zur Beantwortung der Frage, wieviele Besucher einer Seite prozentual durch erforderliche JavaScript-Unterstützung benachteiligt werden, eignen sich solche Untersuchungen nicht.
javascript:-Links sind unnötigDas Voraussetzen von JavaScript in Form von javascript:-Hyperlinks stößt diesen Benutzern völlig unnötigerweise vor den Kopf. Popup-Fenster und ähnliche JavaScript-Anwendungen lassen sich ohne Mühe zugänglich gestalten, um diese diese Benutzergruppe mit minimalem Aufwand zu erschließen.
Die ersten Popup-Lösung verhindert, dass Suchmaschinen-Robots die Zielseite des Popup-Links erreichen und diese in den Suchmaschinen-Index aufnehmen. Dadurch sind große Informationsmengen auf Unterseiten nicht findbar und sind damit dem allgemeinen Zugriff entzogen. So gehen dem Seitenbetreiber zwangsläufig Besucher verloren. Für Webautoren, die themenspezifische Informationen auf Unterseiten anbieten und auf Besucher über Suchmaschinen angewiesen sind, ist eine angemessene Suchmaschinenposition essentiell.
Von problematischer JavaScript-Verwendung sind insbesondere diejenigen Websurfer betroffen, die alternative Zugangstechniken nutzen. Dies können beispielsweise Menschen mit körperlichen Einschränkungen sein. Um eine Website auch und insbesondere für diese Gruppe zugänglich zu machen, sollte auf Scriptaufrufe mit javascript: verzichtet werden. Die Web-Zugänglichkeitsrichtlinien des W3C weisen ausdrücklich darauf hin: Sorgen Sie dafür, dass Seiten verwendbar sind, wenn Scripts, Applets oder andere programmierte Objekte abgeschaltet sind oder nicht unterstützt werden. [...] Sorgen Sie dafür, dass Links, die Scripts auslösen, funktionieren, wenn Scripts abgeschaltet sind oder nicht unterstützt werden (Verwenden Sie z. B. nicht ›javascript:‹ als Ziel eines Links).
Durch eine Technikanwendung, die zahlreiche Zugangsarten nicht berücksichtigt, schadet ein Webautor nicht nur einer beträchlichen Benutzergruppe, indem er sie benachteiligt und ausschließt, sondern auch sich selbst, da er interessierte Besucher verliert. Was bedeutet das konkret?
Für kommerzielle Websites, die die meisten Besucher als potenzielle Kunden betrachten, bedeutet dies im Endeffekt weniger Kunden und weniger Produktabsatz. Dies kann vor allem für die Unternehmen fatal sein, die extensiv Geschäfte über das Web abwickeln. Davon abgesehen ist eine kompatible und zugängliche Webpräsenz ein Aushängeschild für jedes Unternehmen und symbolisiert Kompetenz, Vertrauenswürdigkeit und einen professionellen Umgang mit Kunden.
Aber auch für nicht-kommerzielle Webangebote, die in Konkurrenz mit anderen um Aufmerksamkeit haschen, ist diese Rücksichtslosigkeit gegenüber den Besuchern verheerend für die Popularität. Erst auf der Basis einer möglichst kompatiblen Technik lassen sich Inhalte vermitteln und können den Empfänger erreichen.
Der zweite Lösungsansatz verwendet ebenso JavaScript, trägt aber den genannten Umständen Rechnung.
Die beschriebene JavaScript-Funktion oeffnefenster() wird übernommen und im Dokumentkopf oder in einer eingebundenen externen JavaScript-Datei notiert. Im Gegensatz zum ersten Lösungsansatz wird das gewünschte Verweisziel wie zunächst bei einem normalen Link im href-Attribut definiert:
<a href="foo.html">Linktext<a>
Keinesfalls sollte href="#" oder href="javascript:;" verwendet werden, da dies die beschriebenen Probleme nicht löst.
Die gewünschte JavaScript-Funktion zum Öffnen des Popup-Fensters wird durch den Event-Handler onclick ausgeführt.
<a href="foo.html" onclick="oeffnefenster('foo.html'); return false">Linktext<a>
Der negative Rückgabewert return false unterdrückt die Standard-Ereignisbehandlung für den Klick auf den Hyperlink. Damit wird verhindert, dass nach dem Öffnen des Popup-Fensters zusätzlich das im href-Attribut angegebene Linkziel im Ausgangsfenster aufgerufen wird.
Durch eine kleine Anpassung kann das Linkziel später einfacher geändert werden. Anstatt es zweimal im Quelltext anzugeben, nämlich im href-Attribut und als String-Parameter des oeffnefenster-Funktionsaufrufs, wird der Funktion mittels this.href die Objekteigenschaft href des Elementobjektes übergeben. Diese Eigenschaft enthält den Wert des gleichnamigen HTML-Attributs. Somit muss beim späteren Anpassen der Zieladresse lediglich der href-Attributwert geändert werden, dies legt dann ebenfalls die im Popup-Fenster zu öffnende Seite fest.
<a href="foo.html" onclick="oeffnefenster(this.href); return false">Linktext<a>
Diese Änderungen haben gegenüber dem ersten Lösungsansatz den Vorteil, dass alle Seitenbesucher das im href-Attribut angegebene Dokument annavigieren können – unabhängig davon, ob JavaScript verfügbar und aktiviert ist. Da es sich um einen gewöhnlichen Hyperlink handelt, ist beispielsweise auch das Hinzufügen zu den Lesezeichen über das Kontextmenü möglich. Im Falle einer aktivierten JavaScript-Unterstützung wird das Linkziel in einem neuen Fenster geöffnet, sofern es die verwendete Benutzerschnittstelle und die Einstellungen erlauben.
Fenster öffnen. Wählen Sie den Link an, um das Fenster zu öffnen beziehungsweise dem Hyperlink auf gewohnte Weise zu folgen (Linkziel wird im selben Fenster angezeigt und ähnliches).
Wenn das Linkziel auch bei deaktiviertem JavaScript in einem neuen Fenster bzw. Tab geöffnet werden soll, kann dem a-Element zusätzlich das Attribut target="_blank" zugewiesen werden.
<a href="foo.html" target="_blank" onclick="oeffnefenster(this.href); return false">
Falls JavaScript nicht verfügbar oder deaktiviert ist, wird dadurch dennoch versucht, das Linkziel in einem neuen Fenster zu öffnen. Auf die Darstellung eines mit dem target="_blank" geöffneten Fensters hat der Seitenautor keinen Einfluss.
Das Attribut target ist für die Frames-Präsentationstechnik und nicht zur logischen, ausgabeunabhängigen Auszeichnung gedacht. Daher ist es Bestandteil der Transitional-Varianten von HTML 4 und XHTML 1, nicht aber Teil der Strict-Varianten. Falls das Dokument dem Standard entsprechen soll, erfordert die Verwendung des target-Attributs die Angabe einer entsprechenden Dokumenttyp-Deklaration am Dokumentanfang.
Die Verwendung von target="_blank" ist umstritten, da diese Methode nahezu dasselbe Problempotenzial wie JavaScript-Popups birgt, wenngleich das Öffnen neuer Fensters durch target="_blank" unterbunden oder eingeschränkt werden kann. Dies erfordert jedoch Kenntnisse des Benutzers und ist nur in einigen Browsern möglich, beispielsweise durch tabbed browsing. Nähere Hinweise finden sich unter Alternativlösungen.
Fenster öffnen. Wählen Sie den Link an, um das Fenster zu öffnen. Falls der Browser den JavaScript-Code nicht ausführt, wird dennoch ein neues Browserfenster beziehungsweise Tab geöffnet, falls es vom Benutzer nicht manuell oder durch eine Browsereinstellung unterdrückt wird.
Mithilfe der beschriebenen JavaScript-Funktion werden alle Links immer im selben Popup-Fenster mit dem Fensternamen fenster1 geöffnet – vorausgesetzt, ein aktivierter und ausreichend fähiger JavaScript-Interpreter steht zur Verfügung, die Benutzereinstellungen lassen es zu und der Benutzer hat nicht manuell eingegriffen.
Wenn bereits ein Popup-Fenster geöffnet wurde und der Benutzer einen weiteren Popup-Link im Ursprungsfenster aktiviert, wird das Linkziel im bereits vorhandenen Popup-Fenster annavigiert. Die Konsequenz ist, dass nur ein Popup-Fenster neben dem Hauptfenster existieren kann. Da mehrere – in dem Falle mehr als zwei – nebeneinander geöffnete, inhaltlich zusammenhängende Fenster die Bedienung enorm erschweren können, ist diese Vorgehensweise nur ratsam. Dennoch wird im Folgenden eine Möglichkeit zum Öffnen mehrerer Popup-Fenster vorgestellt.
Entscheidend ist der zweite Funktionsparameter von window.open(), welcher einen eindeutigen Namen für das neue Fenster angibt. Im oben vorgestellten JavaScript-Code ist der Fenstername mit dem Wert fenster1 unveränderlich festgelegt. Um beim jedem Funktionsaufruf ein neues, weiteres Fenster zu öffnen, kann anstelle eines festen Fensternamens das Schlüsselwort _blank angegeben werden.
function oeffnefenster (url) {
fenster=window.open(url, "_blank", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes");
fenster.focus();
return false;
}
Bei dieser einfachen Variante wird die Variable fenster mit dem window-Objekt des zuletzt geöffneten Fensters überschrieben. Daher ist der JavaScript-Zugriff auf die davor geöffneten Fenster nicht ohne weiteres möglich.
Selbst wenn der Browser JavaScript unterstützt, der JavaScript-Interpreter aktiviert und hinreichend fähig ist sowie keine einschränkenden Einstellungen vorgenommen wurden, kann das Popup-Fenster auf Ablehnung beim Benutzer stoßen. Das Öffnen von mehreren, voneinander unabhängigen Fenstern gibt dem Benutzer weder Orientierung noch Übersicht, sondern stiftet Verwirrung durch eine unklare Benutzerführung. Der Seitenbesucher wird an einer Navigation gehindert, bei der paralleles Lesen selbstgewählt ist und somit für den individuellen Benutzer verständlich bleibt.
Die erzeugten Popup-Fenster haben meist eine feste, unveränderbare Größe und können nicht flexibel auf Umgebungsbedingungen und Benutzervorlieben reagieren. Auch ein dynamisches Anpassen der Popup-Größe kann dieses grundlegende Unvermögen nicht wettmachen – es würde nur zu weiteren Unstimmigkeiten führen. Somit sind Popups und deren Inhalte zwangsläufig nicht anpassungsfähig. Dies kann die grundlegende Lesbarkeit der Seite gefährden, was weder im Sinne des Autors noch des Besuchers ist.
Eine weiterer gravierender Nachteil ist, dass die Zurück-Navigation des Browsers funktionsunfähig wird. Damit wird der Navigationspfad durchbrochen und der Bezug zwischen den Dokumenten geht verloren. Bei der Bedienung des Webs sind zwei Aktionen grundlegend: Das Aktivieren eines Hyperlinks durch »Point and Click« und die Zurück-Funktion. Der Umgang mit mehreren selbstständigen Fenstern hingegen durchkreuzt dieses bewährte, leicht zu erlernende Bedienkonzept.
Das Deaktivieren der wesentlichen Bedienelemente des Popup-Fensters (Menü-, Symbol-, Adress- und Statusleiste) kann der Benutzer in der Regel nicht unterbinden. Durch diese Gängelung ist der Benutzer in der Bedienung des Browsers derart eingeschränkt, dass es weder möglich ist, die aktuelle Adresse des Dokuments in Erfahrung zu bringen, noch die angezeigte Seite zu den Lesezeichen hinzuzufügen, sie zu drucken oder abzuspeichern. Diese erhebliche Beschneidung der Funktionalität zeigt deutlich, dass Popup-Fenster zur gelungenen Interaktion mit dem Benutzer ungeeignet sind. Sie erschweren den Umgang mit der Seite und das Aufnehmen der Inhalte.
Die Annahme, ein in Breite und Höhe festes Popup-Fenster könne eine einheitliche, pixelgenaue Darstellung bei allen Benutzern erreichen, beruht auf einer einseitigen Sicht auf das Web. Eine durch unflexible Popup-Fenster fixierte Darstellung zerstört die Kompatibilität einer Website. Dadurch leidet der Bedien- und Lesekomfort, Besucher werden gestört und unter Umständen ausgeschlossen. Anpassungsfähigkeit und Rücksichtsichtnahme auf Benutzereinstellungen bedeutet jedoch nicht, dass auf eine hochwertige und durchdachte Präsentation verzichtet werden muss.
Websites sollten mit jedem denkbaren Ausgabegerät und jedem Browser so gut aufnehmbar sein, wie es die Inhalte der Seite und die Fähigkeiten der Zugangstechnik erlauben – sei es ein Desktop-Rechner mit Bildschirmausgabe, ein Laptop oder Netbook, ein Smartphone oder PDA, ein Sprachbrowser oder eine Braillezeile. Alternative, vor allem mobile Zugangstechniken finden immer breitere Anwendung, weshalb die Interoperabilität einer Website verstärkt ein Qualitätsmerkmal ist. Die dazu nötige Reduzierbarkeit (Graceful Degradation) ist ohne Einschnitte möglich, sofern bestimmte Regeln der Barrierefreiheit berücksichtigt werden.
Das Konzept der Popup-Fenster ist längst überholt und unter heutigen Bedingungen widersprüchlich. Manche der genannten Zugangstechniken kennen weder das klassische Konzept mehrerer eigenständiger Fenster, noch können sie JavaScript ausführen. Einige Browser erlauben das generelle Deaktivieren von window.open()-Fenstern, sodass die Zieladressen einfach im selben Fenster geöffnet werden. Viele Browser unterbinden Manipulationen der Fenstereigenschaften, sodass z.B. das Deaktivieren der Adressleiste und der Statusleiste ignoriert werden. Aus Benutzbarkeitsgründen ignorieren Firefox und Opera die Angabe resizable=no im dritten window.open()-Parameter, wodurch jederzeit eine Größenänderung des Fensters möglich ist.
Seit der Erfindung der Popup-Fenster haben sich die Interfaces der Browser zum Teil grundlegend geändert. Durch die konsequenten Ein-Fenster-Konzepte moderner Browser, genannt tabbed browsing und multiple document interface, verlieren eigenständige, um ihre Bedienelemente beraubte Popup-Fenster mit festen Größen ihren Sinn. Dadurch wird der Bedienkomfort entscheidend verbessert, weil der Benutzer die Kontrolle über die Fensterverwaltung zurückgewinnt. Wenn all diese Umstände in Betracht gezogen werden, wird es offensichtlich, dass Popup-Fenster bei den meisten Benutzern nicht zu dem vom Seitenautor beabsichtigten Ergebnis führen.
target="_blank"Für eine Parallelanzeige existiert als Alternativen zu JavaScript-Popups das bereits genannte target="_blank". Zwar ist es für einige wenige Benutzer möglich, target="_blank" unwirksam zu machen, falls die jeweiligen Links eindeutig beispielsweise durch ein Symbol gekennzeichnet sind. Nichtsdestoweniger werden viele der angesprochenen Probleme auch bei target="_blank" auftreten. Beispielsweise wird der Navigationspfad ebenso durchbrochen, die Zurück-Navigationsfunktion wird unwirksam und die mehreren Fenster können Desorientierung hervorrufen. Die genannten Web-Zugänglichkeitsrichtlinien raten grundsätzlich von der Erzeugung neuer Fenster ab, solange der Benutzer keine Möglichkeit hat, dies auf einfache Weise zu unterdrücken beziehungsweise zu steuern.
Wenn es darum geht, mehrere Dokumente beziehungsweise Informationen gleichzeitig nebeneinander anzuzeigen und wenn eine Integration unmöglich scheint, könnte über die Verwendung eines Framesets nachgedacht werden – siehe SELFHTML: Frames. Die Verwendung von Frames hat jedoch in der Regel schwerwiegendere, nicht kompensierbare Benutzbarkeitsprobleme zur Folge als Popup-Fenster und target="_blank". Daher erweisen sich Frames in den meisten Fällen nicht als akzeptable Alternativlösung.
Die Verwendung von Popups weist oftmals auf eine mangelhafte, unverständliche Projektstrukturierung hin: Wenn der Navigationsfluss unklar ist, scheinen Popup-Fenster die Rettung zu sein. Doch anstatt einen hindernisfreien Zugang zu bieten, erschweren Popups den Zugang zu den Informationen. Ein Anbieter von Informationen im Web sollte neben der Qualität der Inhalte auf eine intuitive Organisation und Präsentation Wert legen, die möglichst jedem Interessierten gerecht wird.
In welchen Fällen greifen Seitenautoren zu Popup-Fenstern? Wenn beispielsweise auf externe Quellen, Randbemerkungen, »Fußnoten« beziehungsweise generell Zusatz- und Metainformationen verwiesen wird, ist es nicht zwangsläufig notwendig oder vorteilhaft, auf einer parallelen Darstellung zu bestehen und über den Kopf des Benutzers hinweg neue Fenster zu öffnen.
Ohne weiteres kann dem Benutzer die Kompetenz und Freiheit zugestanden werden, selbst zu entscheiden, ob er eine Seite in einem neuen Fenster parallel betrachten möchte. Dem Benutzer sollte darin vertraut werden, dass er die wesentlichen Navigationsfunktionen seines Browsers bedienen kann oder deren sinnvolle Anwendung entdecken kann, sodass er zwischen mehreren Dokumenten eigenständig wechseln kann. Der Autor sollte dem Benutzer daher Vorschläge machen und Hilfestellung geben, um diese Selbständigkeit zu fördern, anstatt ihn vor vollendete Tatsachen zu stellen.
Die Verwendung von Popup-Fenstern ist stark zurückgegangen, seit es komfortable Lightbox-Fertigscripte gibt. Diese ermöglichen, beliebige Inhalte in einer Ebene (layer) darzustellen, die über dem Dokumentinhalt liegt. Der Rest des Dokuments wird beim Anzeigen des Layers ausgegraut und der Layer verschwindet, wenn zum Hauptinhalt zurückgekehrt wird. Auf ein neues Browserfenster wird gänzlich verzichtet.
Der Vorteil solcher Scripte ist, dass sie »unobtrusive« umgesetzt sind. Das heißt, es ist keine Vermischung von HTML und JavaScript nötig und bestenfalls bleiben alle Inhalte zugänglich, auch wenn JavaScript nicht unterstützt wird. Im Vergleich zu klassischen Lösungen haben sie aber auch Nachteile. Zum Beispiel gelingt es nicht immer, den im dokumentinternen Fenster gezeigten Inhalt mit einer URI zu adressieren und zu verlinken. Zudem wird ein eigenes Interface eingeführt, das keinen Gebrauch von der herkömmliche Browser-Navigation macht. Dies ist für Benutzer noch ungewohnter als das Öffnen gewöhnlicher Fenster.
Heutzutage erfüllen stark interaktive und dynamischen Webanwendungen die Aufgaben klassischer Desktop-Anwendungen. Deren Benutzeroberfläche orientiert sich an gewöhnlichen Anwendungsprogrammen und bewegt sich jenseits der Konventionen herkömmlicher Websites.
Das Konzept mehrerer Fenster nutzen Anwendungsprogramme schon lange äußerst erfolgreich. Zahlreiche Webanwendungen adaptieren dieses Konzept. Diese »Fenster« müssen allerdings nicht mit mehreren Browserfenstern realisiert werden, eine Umsetzung in einem Browserfenster wäre ebenso möglich. Mit Konzepten wie Ajax und dokumentinternen Lightbox-Dialogfenstern lässt sich ein Interface entwickeln, bei dem das klassische Navigieren wegfällt, ohne dass dessen erfolgreiche Konzepte verworfen werden.
Die genannten Alternativmöglichkeiten bieten zwar einige Vorzüge gegenüber JavaScript-Popups, jedoch treiben sie mitunter den Teufel mit dem Beelzebub aus. Am wenigsten Probleme bringt ein Projektaufbaus und eine Präsentation mit sich, die Aufgaben, die bisher durch Popups gelöst wurden, integrativ löst. In erster Linie sollte die hypertextuelle Organisation der Informationen hinterfragt werden, wenn eine parallele Präsentation gewünscht wird.
Auf diese Weise lässt sich eine Site-Struktur entwickeln, die den komplexen Informationen gerecht wird, ohne dass dies ein unflexibles und nicht intuitives Interface zur Folge hat. Dadurch wird die Verwendung von Popup-Fenstern, Frames und target="_blank" unnötig, wodurch sich die Benutzerfreundlichkeit und die Zugänglichkeit der Seite verbessern.