Jan L.: Netscape

Beitrag lesen

Hallo,

Die CSS Struktur stimmt leider nicht überein, Du musst also browserabhängig reagieren (NS kennt z.B. "style" nicht).

Das ist Quatsch. Dir ist bekannt, daß die aktuelle Netscape-Version 7.0 ist?

Der beste Weg (hab ich mal bei Macromedia gelernt) ist, abhängig vom Browser Scriptvariablen zu setzen und diese dann mit eval() aufzulösen.

Besser nie was von Macromedia abschauen ;-)
Das Script von Tom ist wesentlich besser und funktioniert auch auf moderen Browsern, die nicht IE heißen. Außerdem ist eval() evil, und sollte nur verwendet werden, wenn es nicht anders geht.

Beispiel (nicht getestet aber so funktioniert das Prinzip):

// Browserabhängig initialisieren

function init(){
  if (navigator.appName == "Netscape") {

Funktioniert nur, wenn sich der Browser auch unter seinem richtigen Namen ausgibt, und das muß nicht sein.

var layerRef="document.layers";

NS7 wird in appName auch 'Netscape' stehen haben, document.layers kennt er trotzdem nicht (auch nicht document.all), wohl aber document.getElementById

var styleSwitch="";
  }else{
    var layerRef="document.all";
    var styleSwitch=".style";
  }

Es gibt auch andere,bessere Browser als NS4 und IE.
Bei neuen Netscapes und Mozilla dürfte das Script komplett versagen und eine Fehlermeldung bringen.

}

// Variablen mit eval() verwenden

function farbe_zelle(id,farbe) {
  eval(layerRef+'["'+id+'"]'+styleSwitch+'.background-color="'+farbe+'"');

^
das wird nicht funktionieren

}

Ich empfehle dringend:
http://selfhtml.teamone.de/dhtml/modelle/index.htm

Gruß, Jan