Der Martin: Doctype zerstört Javascript ?!?

Beitrag lesen

Hallo,

ich komme nicht weiter, ich habe mir einen Tooltip zusammengeschustert, der hat auch wunderbar funktioniert...nur wenn ich jetzt ein Doctype festlege, reagiert der Tooltip anders.

also enthält das Script fehlerhafte Angaben, bei denen der Browser im Quirks Mode zufällig richtig rät, was es *wirklich* heißen soll.

var OP = (navigator.userAgent.indexOf('Opera') != -1) ? true : false;

Das kann man eleganter einkürzen: Der Ausdruck
   (navigator.userAgent.indexOf('Opera') != -1)
ergibt bereits true oder false, der Fragezeichen-Operator ist hier also überflüssig. Die Formulierung
   var OP = (navigator.userAgent.indexOf('Opera') != -1);
ergibt exakt dasselbe Ergebnis. Die nächsten zwei Zeilen entsprechend.

Wobei der Sinn solcher Browserweichen, die nach dem Namen und nicht nach Fähigkeiten unterscheiden, eher zweifelhaft ist.

this.sobj.left = left + ext;
      this.sobj.top = top + 35;

Für die y-Koordinate (top) fehlt hier eindeutig eine Einheit. Der IE fängt auch in Standards Mode an zu raten und nimmt px an, der Firefox macht Dienst nach Vorschrift und ignoriert die fehlerhafte Angabe. Das sollte dir aber auch die Fehlerkonsole verraten.

Ich bin nicht sicher, ob das der einzige Fehler war, aber er würde deine Beobachtung

Im FF folgt er zwar der Maus, liegt jedoch ganz oben am Browserrand, bei y=0px. Im IE ändert sich der y-Wert je nachdem, wo man gerade hinscrollt.

zumindest erklären. Insgesamt finde ich: Verdammt viel Javascript für ein bisschen Tooltip (der mir persönlich außerdem lästig wäre). Das kann man mit CSS bestimmt eleganter lösen.

So long,
 Martin

--
Der Bäcker schlägt die Fliegen tot
Und macht daraus Rosinenbrot.