Script auf Netscape-tauglich umproggen
pb
- javascript
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
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.
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
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
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
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
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)
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.