Hi,
Tut der Quirksmode was zur Sache? Eigentlich nicht.
Doch, sehr wohl.
Das ändert nichts am Javascript, und der Quirksmode reicht aus, um Scripte zu testen, oder etwa nicht? Ist jetzt ernst gemeint die Frage, ich weiß nicht, ob der was an der Javascriptinterpretation ändert.
Die Fehlertoleranz ist höher - insb. in Bezug auf das Zusammenspiel mit CSS.
Du kannst über das style-Objekt einem Element einen rein nummerischen Wert für eine Eigenschaft zuweisen, die aber laut Spezifikation einen Wert mit einer Einheit verlangt. Im IE funktioniert das soweit ich weiss im Quirksmode immer, unabhängig von der Eigenschaft.
Wenn du dann später dein Script in eine Seite im Standard Compliant Mode einbaust, wirst du dich vermutlich erst mal wundern, warum dein Script dann nicht mehr das gewünschte tut.
Ich weiß, dass das Script funktioniert im Firefox und Opera.
Viel mehr ist auch hier das Problem.
Da bekomme ich auch im Firefox (3.5.5) Fehlermeldungen in der Zeile, wo du in der Funktion scrollright das target des Events zu ermitteln versuchst -
e is undefined
http://www.tristimulus.de/abtesk/test.html
Line 61
Obwohl da keins sein dürfte, da das Event wie in dem funktionierenden Script übergeben wird.
Du betrachtest hier offenbar nur die Stelle, wo scrollright über den Eventhandler aufgerufen wird - und vergisst dabei diese Stelle hier:
function right(e){
x=e.clientX;
clearInterval(scrollen);
scrollright();
}
In right rufst du am Ende scrollright auf - aber ohne das Event-Objekt als Parameter zu übergeben.
Damit ist zu Beginn dieser Funktion dann nicht nur im IE e undefiniert, sondern auch im Firefox. Im IE klappt es, stattdessen mit der Zeile
if(!e)e=window.event;
dafür zu sorgen, dass e in den nachfolgenden Zeilen definiert ist und einen Wert hat - aber im Firefox wird nur undefined zugewiesen, weil der window.event nicht kennt. Damit ist e dann zwar deklariert, hat aber im folgenden immer noch kein Wert, der seinerseits Eigenschaften besäße, auf die zugegriffen werden könnte - was dein Script aber trotzdem versucht.
MfG ChrisB
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]