pb: Script auf Netscape-tauglich umproggen

Und nochmal Tachchen!

So folgendes Script läuft im Netscape nicht ... im IE schon ... wie könnte man es denn hinbekommen, dass es läuft hat da jemand ne Idee?

Das Script findet Ihr unter http://home.arcor.de/michaels.interface/scripts/navi/tooltip/tooltip.htm

Danke!
pb

  1. hallo,

    Das Script findet Ihr unter http://home.arcor.de/michaels.interface/scripts/navi/tooltip/tooltip.htm

    Dein Fehler liegt bereits im Ansatz, wie du zwischen IE und Netscape unterschieden möchtest:
    var ie = document.all ? 1 : 0
    var ns = document.layers ? 1 : 0
    Richtig ist, daß der IE "all" versteht, aber IE6 kann auch einigermaßen DOM. Falsch ist, daß alle Netscape-Versionen "layers" verstehen müssen, das stimmt für Netscape6 und aufwärts (einschließlich mozilla) nicht mehr. Eine etwas bessere Differenzierung bekommst du mit:
    var browserName = navigator.appName;
    var isIE = browserName.indexOf("Microsoft Internet Explorer" )==-1?false:true;
    var isNN = browserName.indexOf("Netscape")==-1?false:true;
    var isDOM = document.getElementById?true:false;
    var isDomNN = document.layers?true:false;

    Christoph S.

    1. hi

      var isIE = browserName.indexOf("Microsoft Internet Explorer" )==-1?false:true;
      var isNN = browserName.indexOf("Netscape")==-1?false:true;
      var isDOM = document.getElementById?true:false;
      var isDomNN = document.layers?true:false;

      ich habe vohin mal eine Version geschrieben, die ganz auf UserAgent verzichtet:

      if(document.getElementById){dom = true;}
      else if(document.all){ie4 = true;}
      else if(document.layers){nn4 = true;}

      dadurch muss man dann später auch kein else mehr haben - es wird immer der DOM-code bevorzugt und die Doppelausführungs-gefahr im IE5/6 ist weg. Außerdem funktioniert es auch, wenn man lüft dass sich die Balken biegen - selbst Opera schafft es nicht sich hier zu "verlaufen".

      Grüße aus Bleckede

      Kai

      1. hallo Kai,

        ich habe vohin mal eine Version geschrieben, die ganz auf UserAgent verzichtet:
        if(document.getElementById){dom = true;}
        else if(document.all){ie4 = true;}
        else if(document.layers){nn4 = true;}

        das ist, denke ich, eh die empfehlensertere Methode, weil man tatsächlich fragen sollte, was ein Browser _kann_, und nicht, wie er _heißt_. Allerdings beschreibt das auch ziemlich exakt das "Dilemma": du mußt halt für jedes Fitzelchen, was mal eine Funktion werden soll, im Grunde genommen mindestens drei Varianten schreiben und bist trotzdem nicht absolut sicher. Denn du differenzierst damit nur zwischen DOM-fähigen Browsern und ihren "Vorfahren", was sich bei der Unterscheidung von IE und Netscape/mozilla ja ganz gut macht. Opera, Konqueror, Lynx, Amaya kriegst du damit nicht konsequent angesprochen (obwohl: wer surft schon mit Amaya ... *g*)

        selbst Opera schafft es nicht sich hier zu "verlaufen"

        das muß ich erstmal prüfen

        Grüße aus Berlin

        Christoph S.

        PS (ganz leise): ich habe ein Problem, wenn ein Seitenbastler wie "pb" gerne tooltips veröffentlichen möchte, sich aber offensichtlich nicht ganz "auf der Höhe der Zeit" befindet  -  so, jetzt isses doch raus, obwohl ich mir "sowas" verkneifen wollte

        1. hi

          Denn du differenzierst damit nur zwischen DOM-fähigen Browsern und ihren "Vorfahren", was sich bei der Unterscheidung von IE und Netscape/mozilla ja ganz gut macht. Opera, Konqueror, Lynx, Amaya kriegst du damit nicht konsequent angesprochen (obwohl: wer surft schon mit Amaya ... *g*)

          Opera -> dom
          konqueror -> dom
          lynx -> eh kein JS (und auch kein CSS)
          Amaya -> auch kein JS

          Grüße aus Bleckede

          Kai

          1. naja, Kai ...

            Opera -> dom
            konqueror -> dom

            du hast selber mal nen heftigen Thread angefangen zum Thema "wie werden wir die Krücke Netscape 4.x los?"  und damit auf die verschiedenen (leider) noch in Umlauf befindlichen Versionen einer "Marke" aufmerksam gemacht. Was für Netscape gilt, gilt aber auch für Konqueror und Opera  -  wenn du keinen Konqueror 3 und keinen Opera 6 hast, wirds halt mit DOM bzw. mit einigen dynHTML-Geschichten problematisch  -  bei dynHTML zickt auch Konqueror3 hie und da rum.

            lynx -> eh kein JS (und auch kein CSS)
            Amaya -> auch kein JS

            geschenkt  -  das muß im Zusammenhang mit meiner Aussage gelesen werden, daß eine "Browserweiche" eben nicht nach dem "Namen" eines Browsers fragen sollte, sondern irgendwelche "typischen" Fähigkeiten zu prüfen hat. Theoretisch kannst du ja nach dem Browsernamen "Lynx" fragen und dich wundern, daß das keine Wirkung zeigt ...
            Meinen Amaya muß ich mir nochmal genauer anschauen. Ich hab da irgendwo was gelesen, daß er doch mit Javascript kann, weiß aber im Moment nicht genau, wo.

            Grüße aus Berlin-Mitte

            Christoph S.

            Grüße aus Bleckede

            Kai

        2. hallo Kai,

          ich habe vohin mal eine Version geschrieben, die ganz auf UserAgent verzichtet:
          if(document.getElementById){dom = true;}
          else if(document.all){ie4 = true;}
          else if(document.layers){nn4 = true;}
          das ist, denke ich, eh die empfehlensertere Methode, weil man tatsächlich fragen sollte, was ein Browser _kann_, und nicht, wie er _heißt_. Allerdings beschreibt das auch ziemlich exakt das "Dilemma": du mußt halt für jedes Fitzelchen, was mal eine Funktion werden soll, im Grunde genommen mindestens drei Varianten schreiben und bist trotzdem nicht absolut sicher. Denn du differenzierst damit nur zwischen DOM-fähigen Browsern und ihren "Vorfahren", was sich bei der Unterscheidung von IE und Netscape/mozilla ja ganz gut macht. Opera, Konqueror, Lynx, Amaya kriegst du damit nicht konsequent angesprochen (obwohl: wer surft schon mit Amaya ... *g*)

          selbst Opera schafft es nicht sich hier zu "verlaufen"
          das muß ich erstmal prüfen

          Grüße aus Berlin

          Christoph S.

          PS (ganz leise): ich habe ein Problem, wenn ein Seitenbastler wie "pb" gerne tooltips veröffentlichen möchte, sich aber offensichtlich nicht ganz "auf der Höhe der Zeit" befindet  -  so, jetzt isses doch raus, obwohl ich mir "sowas" verkneifen wollte

          Ähm, datt iss nicht mein Script. ;o) Ich selbst hab von der Materie Ahnung wien Nilpferd vom Kiffen. Aber ich kann wenigstens Hauptseiten (wie z.B. http://home.arcor.de/michaels.interface/) aufrufen ;o). Ist nich meine Page. Trotzdem danke ;O)

          PS: Ich bin eher so der Design, PHP, MySQL, Flash Typ :o)

          1. hallo pb,

            [... fullquote ...]

            PS: Ich bin eher so der Design, PHP, MySQL, Flash Typ :o)

            dann verrate uns bitte mal, wie du "Design" ohne "Browserweiche" machst oder wie Flash bei einem Benutzer ankommen soll, der kein entsprechendes plugin für seinen Browser installiert hat.

            Grüße

            Christoph S.