Bio: Abgefahrener Mozilla Fehler...

Sup!

Also... man nehme ein Browser-Fenster, erzeuge ein paar Tabs... dann geben man http://www.kingchess.de in ein Tab ein, und drücke Return und klicke sofort auf ein anderes Tab... und zack, öffnen sich Pop-Ups mit den einzelnen Frameteilen... vielleicht nur, wenn man Pop-Ups erlaubt hat natürlich... aber strange ist es auf jeden Fall.

Vielleicht kommt das auch bei anderen Seiten mit "kaskadiertem" Frameset vor? (Kai, fahr' schon mal den Bugzilla-Wagen vor!)

Gruesse,

Bio

  1. Hi!

    Also... man nehme ein Browser-Fenster, erzeuge ein paar Tabs... dann geben man http://www.kingchess.de in ein Tab ein, und drücke Return und klicke sofort auf ein anderes Tab... und zack, öffnen sich Pop-Ups mit den einzelnen Frameteilen... vielleicht nur, wenn man Pop-Ups erlaubt hat natürlich... aber strange ist es auf jeden Fall.

    Interessantes Verhalten! (Es tritt übrigens auch dann auf, wenn das
    unaufgeforderte Öffnen von Popups deaktiviert wurde.)

    Wenn man sich mal den Quellcode ansieht, kann man (auf den ersten Blick)
    dieses Verhalten jedoch nachvollziehen. Schließlich ist dort folgendes
    zu lesen:
    <script language="JavaScript" type="text/javascript">window.open("/welcomeinfo.asp", "leiste")</script>
    <script language="JavaScript" type="text/javascript">window.open("/copyright.asp", "rbottom")</script>

    Wieso aber öffnen sich beim normalen Aufrufen der Seite (und deaktiviertem
    Popup-Blocker) die Fenster nicht?
    Ganz einfach: Den beiden Fenstern werden dieselben Namen zugewiesen, die schon
    die Frames haben - also "leiste" und "rbottom". Die Browser treffen also
    auf das window.open, stellen aber fest, daß es bereits ein Fenster (bzw.
    Frame) mit diesem Namen gibt und öffnen die jeweilige Seite in dem schon
    vorhandenen Frame.

    Anders nun der Mozilla. Sobald man in einen anderen Tab wechselt, scheint
    er die Framenamen zu vergessen.
    Theorie: Der Mozilla guckt nur im aktuell sichtbaren Tab nach, welche Frame-
    Namen bereits verwendet werden und öffnet dementsprechend neue Fenster,
    anstatt die bestehenden Frames zu verwenden, da im aktuell angezeigten
    Tab (->leer) die Namen nicht schon vergeben sind.
    Beweis: Zwei Tabs öffnen. In eines der Tabs die KingChess-Seite laden und
    warten bis diese zuenden geladen wurde. Nun auch in das andere Tab die
    KingChess-Seite und sofort in das zuvor geladene KingChess-Tab wechseln.
    Es werd keine neuen Fenster (Popups) geöffnet, weil ja im aktuell angezeigten
    Tab die Namen vergeben sind.

    (Korrekterweise müßte Mozilla natürlich immer in dem Tab nach den vergebenen
    Frame-Namen suchen, in dem der Aufruf von windows.open erfolgt.)

    Interessant ist auch die Frage, wieso denn nun trotz aktiviertem Popup-
    Blocker die neuen Fenster geöffnet werden. Vermutlich hast du gleich zwei
    Bugs entdeckt. :-)

    Vielleicht kommt das auch bei anderen Seiten mit "kaskadiertem" Frameset vor?

    Wohl eher nicht. Zumindest nicht, solange nicht dieser konkrete Fall vorliegt.

    Gruß
    Slyh