Calocybe: Handhabung von undefinierten Variablen in älteren Browsern?

Beitrag lesen

Hi Utz!

  1. Die Variablen musste ich oberall der Funktion definieren; sie werden als "undefiniert" geführt, bis sie im "else"-Teil gefüllt werden. [...] ABER: Ich könnte mir vorstellen, dass irgendwelche JS-Interpreter die Variablen-Definition zum Anlass nehmen, die "if"-Anfrage mit "ja" zu beantworten und dann zu meckern, dass die ".closed"-Eigenschaft nicht zum Objekttyp passt.

Kein Sorge, das wird nicht vorkommen. In JS ergeben die Werte undefined, null und 0 ein logisches false, alles andere ist true.

  1. Wenn das Zweitfenster geschlossen wird, bleibt die Variable trotzdem definiert (deswegen überhaupt erst die Bedingungsverknüpfung). Hier befürchte, dass manche JS-Interpreter beim Schließen des Fensters die Variablren-Definition löschen. Das Script dürfte trotzdem machen, was es soll, aber ich frage mich, ob so was vorkommen kann...

Nein, kann es nicht. Die Erklaerung ist mir jetzt ehrlich gesagt zu langwierig.

Du hast aber ein anderes Problem. Aeltere Browser unterstuetzen die focus-Methode nicht. Du kannst an der Stelle also einen JS-Error erhalten. Deshalb musst Du deren Existenz noch zusaetzlich pruefen:

function altstadt() {
    if (koepenick && !koepenick.closed && koepenick.focus) koepenick.focus();
    else koepenick = window.open("plan.htm","Koepenick","toolbar=no,width=465,height=518,left=5,top=5");
}

Ich denke, wenn focus() nicht zur Verfuegung steht, ist ein Neuoeffnen des Fensters ein akzeptabler Workaround.

Falls wer ältere Browser installiert sowie Zeit & Lust hat, das ganze auszuprobieren: die Testversion steht unter http://www.berlin-suedost.de/spielwiese/index.htm - dort dann auf eines der Stadtplansymbole klicken. Auch hier wäre ich über Erfahrungsmitteilungen sehr dankbar. Ach ja: die Bildwechselfunktion in den Stadtplänen funzt mit NS 2 und IE 3 nicht.

Mit dem IE3 oeffnen sich bei mir die Popups ueberhaupt nicht. Unterstuetzt der javascript:-Links etwa noch nicht? Naja, vielleicht ist es auch bloss ein Fehler in meiner Installation, die ist sowieso ziemlich im Arsch. Aber vielleicht probierst Du es trotzdem mal mit <A HREF="(direktlink nach plan.htm fuer non-JS-Browser?)" OnClick="altstadt();">. Mit NS2 kommt der oben angesprochene Fehler mit focus().

Die ganze Seite sieht uebrigens sehr gut aus, insbesondere gefallen mir die OnMouseOvers in den Popups. Nur den grossen leeren Bereich auf der Hauptseite finde ich etwas komisch. Anhand des Sources ist mir aber auch nicht ganz klar, wo der herkommt, und er ist nur in den Netscapes zu sehen (Versionen 2, 3 und 4), nicht im IE3. Mit dem IE2 kann man auf diesen Webserver nicht zugreifen, da er noch kein ausreichend modernes HTTP kann.

Calocybe