netscape 7 zeigt untermenüs nicht an

mauren

Grünschnabel
Hallo,

Netscape Navigator 7.0 zeigt die Untermenüs auf meiner Seite nicht an. Im IE und NS 4 funktioniert es. Also habe ich die Browserweiche erweitert:
Code:
<script language="javascript">
<!--
//hidden layer
var browser, ie=0, ns=0, ns6=0;
browser=navigator.appName;
if(browser=="Netscape" && parseInt(version)>=5) ns6=1;
if(browser=="Netscape" && parseInt(version)<5) ns=1;
if(browser=="Microsoft Internet Explorer") ie=1;

function spiellinkan(){
if(ns){
document.radio.visibility="visible";
}


if(ie){
radio.style.visibility="visible";
}

if(ns6){
radio.visibility="visible";
}
}

function linksaus(){
if(ns){
document.radio.visibility="hidden";
}

if(ie){
radio.style.visibility="hidden";
}

if(ns6){
radio.visibility="hidden";
}
}
//-->
</script>

Die Funktion spiellinkan() soll also bewirken, dass das Dokument radio sichtbar wird, und die Funktion linksaus() versteckt es wieder.

Leider funktioniert es immer noch nicht, das heißt, die versteckte Ebene öffnet sich nicht. Vielleicht stimmt die Schreibweise für den NS 7 nicht? Kann mir jemand helfen?
 
"radio.visibility" funktioniert dort nur, wenn du in "radio" ein style-Object gespeichert hast....
z.B.
Code:
radio=document.getElementById('radio').style;
radio.visibility='hidden';

Aber deine Browserabfrage macht so wenig Sinn, es ist für Javascript unwichtig wie ein Browser heisst(zumal es ausser IE und Netscape noch andere Browser gibt).

Frage lieber ab, welche Methoden der Browser versteht... das ist für Skripte interessant ;)
Code:
<script type="text/javascript">
<!--
//hidden layer
var ie=0, ns=0, dom=0;
if(document.layers){ns=1;}
if(document.all&&!window.opera){ie=1;}
if(document.getElementById){ie=0;dom=1;}

function spiellinkan(){
if(ns){
document.radio.visibility="visible";
}
if(ie){
document.all.radio.style.visibility="visible";
}
if(dom){
document.getElementById('radio').style.visibility="visible";
}
}

function linksaus(){
if(ns){
document.radio.visibility="hidden";
}

if(ie){
document.all.radio.style.visibility="hidden";
}

if(dom){
document.getElementById('radio').style.visibility="hidden";
}
}
//-->
</script>
Zur Erklärung:
  • Mit "if(document.layers)" identifizierst du Netscape4... der versteht als einziger Browser 'layers'
    die Sichtbarkeit eines Layers spricht man an mit "document.nameDesLayers.visibility"
  • Mit "if(document.all&&!window.opera)" triffst du den IE ab Version4. Der IE versteht als einziger Browser "document.all".
    Die Abfrage "!window.opera" ist dabei für Opera gedacht... hat man darin eingestellt, sich als IE zu identifizieren, gibt Opera nämlich vor, "document.all" zu verstehen(tut es aber nicht).
    Die Sichtbarkeit eines Seitenelements sprichst du im IE per "document.all.NameDesElements.style.visibility" an.
  • Mit "if(document.getElementById)"sprichst du alle DOM-Browser an... diese arbeiten nach dem DocumentOjectModel ...und können anhand dessen auf jedes Seitenelement anhand seiner ID, seines Namens oder seines Tagnamens zugreifen.
    Zu diesen Browsern gehören Mozilla,Netscape ab V6,Opera ab V5 und der IE ab V5(deswegen wurde in der Abfrage ie wieder auf 0 gesetzt,damit er nicht alles doppelt moppelt)
    Die Sichtbarkeit eines Seitenelements spricht man im DOM z.B. mit "document.getElementById('IDdesElements').style.visibility" an.

Auf die Art erfasst du alle Browser, in welchen man die visibility von Seitenelementen ändern kann, ohne zu fragen, wie sie heissen :)
 

Neue Beiträge

Zurück