Homepagebau |
|
|||||
Bugs in Browsern
Schwierigkeitsgrad:
Irgendjemand hat mir mal gesagt, man müsse sich nur an die Vorgaben der jeweiligen Standards halten und schon funktionieren Webseiten problemlos auf jedem Browser der Welt... schön wär's. Tatsache ist, dass eigentlich alle Browser sich zwar ungefähr an den Vorgaben des W3C-Standards orientieren, aber wirklich erfüllt werden sie praktisch nie. |
Dieser Report soll ihnen die schmerzlich gesammelten Erkenntnisse aus mehreren Jahren Umgang mit nicht erfüllten Standards und Programmierfehlern vermitteln und Lösungsvorschläge anbieten. |
Y2K-Fehler Es gibt einen
Y2K-Bug in Netscape und Opera bis zur Version 6. Dabei liefert Lösungsvorschlag: eingeschränkte Parameterübergabe Ein im Opera geladenes JavaScript kann den Inhalt der URL
des gerade geladenen Dokuments, sowie die darin möglicherweise für das
Skript übergebenen Parameter nur dann lesen, wenn das Skript direkt im
Dokument selbst steht. Wird das gleiche Skript aus einer Datei über das
Attribut Speicherproblem
bei Skripten Im Netscape Navigator, bzw. Communicator gibt es einen Fehler bei der Speicherbelegung. Dieser tritt aber nur beim allerersten Dokument oder Frameset auf, das nach dem Start des Navigators geladen wird. Für dieses Dokument wird nicht genügend Speicher bereitgestellt. Daher werden Skripte, die eine gewisse Länge überschreiten nicht mehr ausgeführt. Lösungsvorschlag: Größe von Bildern Der Opera-Browser hat eine
gravierende Beschränkung was Bilder angeht. So ist es im Opera weder
möglich die Eigenschaften " Lösungsvorschlag: Fehler
bei Number-Objekt Im Netscape Navigator funktionierte die Funktionen Lösungsvorschlag: Höhe
von I-Frames Der Netscape Navigator hat einen Bug, was das Attribut "height" des Tags IFRAME angeht. Der hier angegebene Wert wird ignoriert. IFRAMEs sind damit zwar im Netscape 6 integriert, richtig funktionieren tun sie jedoch erst seit Kurzem. Speicherleck
bei setTimeout() Die Funktion Fehler bei CSS 2.0 Die Positionierung von Layern über " CSS: Rahmen bei Bildern Wird über CSS für ein Bild ( Sicherheitslücke in JScript Der Microsoft-Ableger von JavaScript: JScript hat
eine Sicherheitslücke, die es möglich macht, über die Funktion " Wie der Datenklau genau funktioniert lassen wir hier einmal offen. Lösungsvorschlag: Java 1.2 nicht unterstützt Der Internet Explorer nutzt für die Interpretation von Java-Applets (Java: ist
nicht gleich JavaScript!) nicht etwa die Original
JVM (Abk. = Java Virtual Machine) von Sun sondern
ein von Microsoft entwickeltes Plagiat das bei weitem nicht an die
eigentlich gewünschte Qualität heranreicht. Nebeneffekt des Ganzen: Java 1.2
wird vom Internet Explorer 6 noch nicht unterstützt. Sind beide
Versionen (Original und "Fälschung") installiert, verwendet IE
bevorzugt die veraltete Microsoftfassung. |
Bug bei Pattern-Match Die regulären
Ausdrücke sind im Internet Explorer unvollständig umgesetzt. Ein Quantifier
( Erläuterung:
Seit JavaScript 1.2 ist die Verwendung von regulären Ausdrücken und
Mustervergleichen erlaubt. Dabei gibt es seit jeher einige Verwirrung um den
Ausdruck " Beschränkung der Länge der URL Abhängig von der Art des verwendeten Systems kann die Anzahl der Stellen, die eine aufgerufene URL haben darf variieren. Das hat einen Einfluss auf übergebene Parameter. Ist die URL (inklusive dieser Parameter) zu lang, werden alle überstehenden Zeichen einfach gelöscht. Lösungsvorschlag: Fehler bei document.write() Dies betrifft HTML-Seiten, die dynamisch über
JavaScript erzeugt werden sollen. Lösungsvorschlag: Größenveränderung
des Fensters Netscape 4 lädt die aktuell anzeigte Seite neu, sobald der User die Größe des Fensters verändert. Globale Variablen von laufenden JavaScripts werden dabei allerdings gelöscht. Die evtl. auf der Seite enthaltenen Skripte werden nicht neu interpretiert. Dies kann ein laufendes Skript natürlich zum Absturz bringen. Lösungsvorschlag: Fehler im JavaScript-Interpreter Der JavaScript-Interpreter des Opera
6 steckte seiner Zeit noch in
den Kinderschuhen. Nicht nur dass der Interpreter der alten Version schleichend langsam
ist, er ist auch sehr
empfindlich. Werden im Opera 6 mehrere JavaScripts gestartet während bereits
ein anderes Skript ausgeführt wird, kann dies in einigen Versionen den Browser
komplett zum Absturz
bringen. Hierfür gibt es leider keine Skriptlösung, es sei denn sie nehmen
dem System die Kontrolle über die Skriptprozesse aus der Hand, indem sie eine
globale Variable definieren die jedes Skript beim Start setzt und wieder
annulliert, wenn es fertig ist. Ein zweites Skript könnte nun feststellen,
dass bereits ein Skript läuft und die Ausführung über den Aufruf Betreten
einer Seite Das Ereignis Verlassen einer Seite Das Ereignis Problem
mit .innerHTML Netscape 7 kann (im Gegensatz zum Vorgänger) mit
der Eigenschaft " Lösungsvorschlag: JavaScript-Konsole in Netscape 7 Netscape hat in Version 7 eine neue JavaScript-Konsole für Webentwickler eingebaut, die - wenn aktiviert - jeden Aufruf protokolliert. Ergebnis: bei aktivierter Konsole ist der JavaScript-Interpreter jetzt so langsam, dass sie sich bequem zwischenzeitlich einen Kaffee holen können, bis sich eine komplexe Internetseite mit JavaScript aufgebaut hat. Dieses Tool ist nur für Entwickler zur Evaluation gedacht und nicht für den Normalbetrieb im Internet. Ergo: Nutzer des Browsers sollten beim Surfen die Konsole stets deaktivieren! neuere CSS-Standards fehlen Weil es seit geraumer Zeit für den Internet Explorer keine Aktualisierungen auf den neuesten Standard des W3C mehr gegeben hat, werden eine Reihe von neueren CSS-Kommandos ab CSS 2.1, im Internet Explorer nicht unterstützt. Dies betrifft unter anderem folgende Anweisungen:
Beispiele: |
Autor: Thomas Meyer |
Home: www.All-Community.de |
Kontakt: |