Tim Tepaße: Völlig neues Popup-Fenster

Beitrag lesen

Hallo Ina,

http://www.inaeisenbeis.de

Wah! Stress!

Erstmal mußte ich den Popup-Blocker in meinem Browser (Camino) ausschalten,
der eigentlich nur automatisch beim Laden der Seite aufgehende Popups
blockiert. Dann erstmal etwas auf der Seite rumfummeln, angucken, rumgucken,
irgendwie in den Quellcode gucken.

Nachdem ich das geschafft habe, mußte ich erstmal dieses wahnsinnig
komplizierte und überfrachtete Popup-Skript von diesem Ray Stott
verstehen. Und inzwischen habe ich eine Theorie, woran es liegen
könnte.

Uuuund zwar:

Ray (Ich nenne diesen komischen Vogel mal Ray) verleiht neu geöffneten
Fenstern einen Namen, wenn er diese mit der Methode window.open()
öffnet. Woher kriegt er diesen Namen? Er schreibt ihn in die Variable
winName und das mit diesem Befehl:

winName = "popWin" + winCount++

winCount ist auch eine Variable mit einer Zahl als Inhalt, die am Anfang des
Skriptes auf Null gesetzt wird und dann mit jedem Aufrufen eines Popups um
eins erhöht wird (++). Fensternamen lauten also in der Reihenfolge ihres
Erscheinens popWin1, popWin2, popWin3 und immerso weiter poppen. Soweit,
so gut.Nuur, jetzt kommt Dein Seitenkonzept ins Spiel.

Du hast nämlich mehrere Seiten, von denen Popups geöffnet werden.
Zuallererst die Startseite mit dem Fernglasblick. Dort wird das
Popup geöffnet, in das Du die Seite eingesperrt hast. Als zweites
die im Popup eingesperrte Seite mit den Menüpunkten. Dort wird nach
meinen Beobachtungen kein Popup geöffnet. Dafür hat diese Seite eine
weitere Seite als iFrame eingebunden.

Jetzt überlegen wir uns, was der Browser in Zusammenarbeit mit dem
Nutzer macht:

  1. Die Fernglasseite wird geladen. Dort wird winCount auf Null gesetzt
       und ein Popup mit dem wahrscheinlichen Namen "popWin1" geladen.

  2. Die iFrame-Seite wird geladen. Dort ist wieder Ray bzw. sein Skript
       eingebunden. In dieser Seite wird wieder winCount auf Null gesetzt.
       Wenn nun von jeglicher iFrame-Seite mit Rays Skript versucht wird
       ein Popup zu öffnen, dann wird wieder so ein Name wie "popWin1"
       verwandt, der allerdingsschon benutzt wird.

Das Problem ist also folgendes:
Du öffnest zuviele Popups, eigentlich nichts verwerfliches (OK, doch),
aber Du tust das von zuvielen unterschiedlichen Seiten. Du öffnest die
Popups aber unter demselben Fensternamen und das ist das Casus Knacktus.
Wir Menschen können Maria und Maria auseinanderhalten, weil die eine
blond und kurzhaarig und die andere brünett und mit Piercing ist. Der
dumme Computer kann das nicht, er kann sich nur an den Namen halten und
das heißt, er braucht eindeutige Namen. Du bzw. Deine Seite bzw. Ray
bzw. Ray sein Skript öffnen nun Popups mit schon vergebenen Namen und
das Resultat ist, daß sich der Inhalt des zu öffnenden Popups innerhalb
eines schon geöffneten Popups öffnet. Logisch, nich?

Was kannst Du jetzt tun? Du mußt jedes Popup, das in einem eigenem
Fenster geöffnet werden soll, einen eigenen eindeutigen Namen geben.
Mit Rays Skript geht das recht schlecht, also setzt dieses Spinner
vor die Tür. Um Popups zu öffnen braucht man nicht so einen Stoffel,
das kann man alleine. Der Javascript-Befehl dafür nennt sich window.open();
und in SELFHTML steht, wie man den genau benutzt.

http://selfhtml.teamone.de/javascript/objekte/window.htm#open

Und wie man ihn am besten benutzt, bzw. am besucherfreundlichsten steht
in diesem etwas längeren Artikel (den ich heute schon zum dritten Male
verlinke. Schlimm.):

http://home.t-online.de/home/dj5nu/js-popup.html

Allerdings heißt das für Dich, daß Du jetzt jede Seite durchgehen solltest,
Rays Hinterlassenschaften ausmisten mußt und neue Popupöffner hinschreiben
mußt. Dafür hast Du die Gelegenheit für ein ausgedehntes Trockentraining
des Aktes der Kindtaufe, nämlich der (eindeutigen!) Namensgebung für jedes
einzelne Fenster. ;-)

Wenn ich Du wäre, wäre ich an dieser Stelle sauer, würde Popups und Ray
verfluchen wie nur was und meine Seite vollkommen auf nicht-Popup
umstellen. Das ist allerdings eine akademische Frage, da ich Popups
generell etwas kritisch gegenüber stehe und Seiten, die innerhalb eines
Popups gefangen sind meistens vollkommen ablehne. Das wäre mein eigentlicher
Vorschlag an Dich, mach was neues, erfinde ein neues Aussehen und vor allem
eine neue Bedienbarkeit. Sei kreativ. Aber es scheint leider nicht das zu
sein, was Du suchst. Schade. :-/

Grüße,
  Tim

--
#972