Christoph Schnauß: Kleines Problem - Kann wer helfen?

Beitrag lesen

hallo bine,

Dein Problem liegt vermutlich hier:

<SCRIPT LANGUAGE="Javascript">
ie4 = ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ))
ns4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4 ))

Du differenzierst hier "nur" zwischen IE 4 und Netscape 4. Dabei weißt du bestimmt, daß die aktuellen Browser dieser Bauart inzwischen Versionsnummer 6 und höher tragen. Du hast dir einfach irgendwo ein "altes" Script besorgt und vergessen, nachzuschauen, ob das auch mit den "modernen" Browsern richtig funktioniert. Man sieht es auch hier:

if (ns4) {
layerRef="document.layers";

Netscape 4 kannte "layer" noch, höhere Netscape-Versionen können damit nix mehr anfangen  -  und wahrscheinlich liegt hier dein Problem.

Wenn du unbedingt eine "Browserweiche" einbauen willst oder mußt, ist es wesentlich effektiver, danach zu fragen, eas der Browser kann  -  und nicht, wie er heißt. Also: anstelle von

ie4 = ((navigator.appName...

und ähnlichen Stellen solltest du solche Variablen nehmen:
var isIE = browserName.indexOf("Microsoft Internet Explorer" )==-1?false:true;
var isNN = browserName.indexOf("Netscape")==-1?false:true;
var isOpera = browserName.indexOf("Opera")==-1?false:true;
var isDOM = document.getElementById?true:false;
var isDomNN = document.layers?true:false;
var isDomIE = document.all?true:false;
und dann auch nicht vom Vorkommen der Variablen abhängig machen, ob "document.layers" zu wählen ist, sondern davon "document.getElementById" abhänig machen.

Grüße aus Berlin

Christoph S.