André: Netscape 7 und Mozilla

Hallo,

ich habe folgendes Script, welches mir meine Navi anzeigt oder auch nicht (abhängig vom Browser)

Warum geht das aber nicht bei Netscape 7 und bei Mozilla?

Hier mal das Script:

function showNavi(){
  if(parent.work){return;}
  if (document.getElementById){ // IE 5.x und NN 6
   document.getElementById("navir").style.visibility="visible";
  }
  if (document.layers){ // NN 4.x
   document.layers["navir"].visibility="visible";
  }
  if (document.all && !document.getElementById){ // IE 4
   document.all["navir"].style.visibility="visible";
  }
}

function hideNavi(){
  if(parent.work){return;}
  if (document.getElementById){ // IE 5.x und NN 6
   document.getElementById("navir").style.visibility="hidden";
  }
  if (document.layers){ // NN 4.x
   document.layers["navir"].visibility="hidden";
  }
  if (document.all && !document.getElementById){ // IE 4
   document.all["navir"].style.visibility="hidden";
  }
}

Danke für alle Bemühungen...!

  1. Hallo,

    ich habe folgendes Script, welches mir meine Navi anzeigt oder auch nicht (abhängig vom Browser)

    hast du mal ein vollständigeres Beispiel?

    Grüsse

    Cyx23

  2. Hallo,

    weiss nicht, was Deine erste if-Abfrage (parent.work) erledigen soll;
    lass die doch mal zu testzwecken weg ...

    Im NS 4.* ist zu beachten, dass es - entsprechend zu "visible" und "hidden" - hier "show" und "hide" heissen muss.

    <script type="text/javascript">
    <!--

    var ns = (document.layers) ? 1:0;
    var ie = (document.all) ? 1:0;
    var dom = (document.getElementById) ? 1:0;

    function zeige_ebene()
    {
    if (ns)
    document.layers['name'].visibility = "show";
    if (ie)
    document.all['name'].style.visibility = "visible";
    if (dom)
    document.getElementById('name').style.visibility = "visible";
    }

    function verberge_ebene()
    {
    if (ns)
    document.layers['name'].visibility = "hide";
    if (ie)
    document.all['name'].style.visibility = "hidden";
    if (dom)
    document.getElementById('name').style.visibility = "hidden";
    }

    //-->
    </script>

    Mfg Bernstein

    1. Hallo,

      Im NS 4.* ist zu beachten, dass es - entsprechend zu "visible" und "hidden" - hier "show" und "hide" heissen muss.

      nein, kann, aber nicht muss.

      Netscape 4 verwendet zwar intern "show" und "hide", wenn du die Eigenschaft visibility abfragen möchtest.

      Um diese zu setzen geht aber einheitlich "visible" und "hidden".

      var ie = (document.all) ? 1:0;

      Operas und alle IE ?

      if (ns)
      if (ie)
      if (dom)

      Hier wäre die Reihenfolge zu überlegen, und dann gibt es noch "else"...

      Grüsse

      Cyx23

  3. Hi,

    document.getElementById("navir").style.visibility="visible";

    kann es sein, daß Du diese ID im HTML mehrfach verwendet hast?

    freundliche Grüße
    Ingo

  4. ok...

    hab's nochmal getestet und denke dass es nicht an diesem script liegt.
    die site ansich funktioniert in allen browsern super.

    wenn ich allerdings eine conent-seite in einen andreren auftritt reinlade, dann gibt's eben bei nn7 probleme, dass mir meine rechte navi angezeigt wird obwohl sie hier nicht sein sollte.

    könnte evtl auch an meiner browser-abfrage liegen.
    gibt's da noch news bzgl. dom-standards und nn7???

    hier mal der check:

    var isNav  = ((uAgt.indexOf('mozilla')!=-1) && (uAgt.indexOf('spoofer')==-1)
                    && (uAgt.indexOf('compatible') == -1) && (uAgt.indexOf('opera')==-1)
                    && (uAgt.indexOf('webtv')==-1) && (uAgt.indexOf('hotjava')==-1));
        var isNav2 = (isNav && (isMajor == 2));
        var isNav3 = (isNav && (isMajor == 3));
        var isNav4 = (isNav && (isMajor == 4));
        var isNav4Up = (isNav && (isMajor >= 4));
        var isNavonly      = (isNav && ((uAgt.indexOf(";nav") != -1) ||
                              (uAgt.indexOf("; nav") != -1)) );
        var isNav6 = (isNav && (isMajor == 5));
        var isNav6Up = (isNav && (isMajor >= 5));
        var isGecko = (uAgt.indexOf('gecko') != -1);

    var isIe     = ((uAgt.indexOf("msie") != -1) && (uAgt.indexOf("opera") == -1));
        var isIe3    = (isIe && (isMajor < 4));
        var isIe4    = (isIe && (isMajor == 4) && (uAgt.indexOf("msie 4")!=-1) );
        var isIe4Up  = (isIe && (isMajor >= 4));
        var isIe5    = (isIe && (isMajor == 4) && (uAgt.indexOf("msie 5.0")!=-1) );
        var isIe5_5  = (isIe && (isMajor == 4) && (uAgt.indexOf("msie 5.5") !=-1));
        var isIe5Up  = (isIe && !isIe3 && !isIe4);
        var isIe5_5Up =(isIe && !isIe3 && !isIe4 && !isIe5);
        var isIe6    = (isIe && (isMajor == 4) && (uAgt.indexOf("msie 6.")!=-1) );
        var isIe6Up  = (isIe && !isIe3 && !isIe4 && !isIe5 && !isIe5_5);

    var isAol   = (uAgt.indexOf("aol") != -1);
        var isAol3  = (isAol && isIe3);
        var isAol4  = (isAol && isIe4);
        var isAol5  = (uAgt.indexOf("aol 5") != -1);
        var isAol6  = (uAgt.indexOf("aol 6") != -1);

    var isOpera = (uAgt.indexOf("opera") != -1);
        var isOpera2 = (uAgt.indexOf("opera 2") != -1 || uAgt.indexOf("opera/2") != -1);
        var isOpera3 = (uAgt.indexOf("opera 3") != -1 || uAgt.indexOf("opera/3") != -1);
        var isOpera4 = (uAgt.indexOf("opera 4") != -1 || uAgt.indexOf("opera/4") != -1);
        var isOpera5 = (uAgt.indexOf("opera 5") != -1 || uAgt.indexOf("opera/5") != -1);
        var isOpera5Up = (isOpera && !isOpera2 && !isOpera3 && !isOpera4);

    var isHotJava = (uAgt.indexOf("hotjava") != -1);
        var isHotJava3 = (isHotJava && (isMajor == 3));
        var isHotJava3Up = (isHotJava && (isMajor >= 3));

    1. Hallo,

      könnte evtl auch an meiner browser-abfrage liegen.

      die Abfrage des Useragent ist bekanntlich unsicher.

      Alternativen zur Browsererkennung per JavaScript findest du z.B. hier:http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html.

      Ansonsten empfiehlt es sich sowieso nach den jeweiligen Anforderungen abzufragen, wie es bei deinem vorherigen Script
      wohl auch passiert (da würde ich allerdings noch "else" einsetzen).

      Grüsse

      Cyx23

    2. Hi,

      könnte evtl auch an meiner browser-abfrage liegen.

      diese abfrage über die UserAgent Strings ist ziemlich ungünstig. Wenn Du Eigenschaften verwenden willst, solltest Du auch auf diese testen und im else-Zeigt auf die möglichen Alternativen.

      freundliche Grüße
      Ingo