Das Thema, das wir diskutieren, ist das CSS-Webseitenlayout. Obwohl 52CSS.com viel Wissen in diese Richtung gebracht hat, verwirrt es immer noch viele Entwickler -Drei Unterschiede zwischen JavaScript und JavaScript in IE und Firefox. Ich hoffe, dass es für das Lernen aller hilfreich sein wird.
1. document.formName.item("itemName") Problem Beschreibung des Problems: Unter IE können Sie document.formName.item("itemName") oder document.formName.elements ["elementName"] verwenden, unter Firefox können Sie nur document.formName.elements["elementName"] verwenden; .
Lösung: document.formName.elements["elementName"] einheitlich verwenden.
2. Probleme mit Sammlungsobjekten Problembeschreibung: Unter IE können Sie () oder [] verwenden, um Sammlungsobjekte abzurufen, unter Firefox können Sie nur [ ] verwenden, um Sammlungsobjekte abzurufen.
Lösung: Verwenden Sie [] einheitlich, um Sammlungsklassenobjekte zu erhalten.
3. Problem mit benutzerdefinierten Attributen Problembeschreibung: Unter IE können Sie die Methode zum Abrufen regulärer Attribute verwenden, um benutzerdefinierte Attribute abzurufen, oder Sie können getAttribute () verwenden, um benutzerdefinierte Attribute unter Firefox abzurufen. Sie können nur getAttribute( verwenden; ), um sie zu erhalten.
Lösung: Erhalten Sie benutzerdefinierte Attribute einheitlich über getAttribute().
4. eval("idName") Problem Problembeschreibung: Unter IE können Sie eval("idName") oder getElementById("idName") verwenden, um das HTML-Objekt mit der ID idName abzurufen; unter Firefox ist dies möglich Verwenden Sie getElementById („idName“) nur, um das HTML-Objekt mit der ID idName abzurufen.
Lösung: Verwenden Sie getElementById("idName") einheitlich, um das HTML-Objekt zu erhalten, dessen ID idName ist.
5. Das Problem, dass der Variablenname mit der ID eines HTML-Objekts übereinstimmt Problembeschreibung: Unter IE kann die ID des HTML-Objekts direkt als Variablenname des untergeordneten Objekts des Dokuments verwendet werden. jedoch nicht unter Firefox; unter Firefox kann es mit dem HTML-Objekt verwendet werden. Variablennamen mit derselben ID können unter IE nicht verwendet werden.
Problemumgehung: Verwenden Sie document.getElementById("idName") anstelle von document.idName. Es ist am besten, Variablennamen nicht mit derselben HTML-Objekt-ID zu verwenden, um Fehler beim Deklarieren von Variablen zu vermeiden. Fügen Sie immer das Schlüsselwort var hinzu, um Mehrdeutigkeiten zu vermeiden.
6. Const-Problem Problembeschreibung: Unter Firefox können Sie das Schlüsselwort const oder das Schlüsselwort var zum Definieren von Konstanten verwenden. Unter IE können Sie zum Definieren von Konstanten nur das Schlüsselwort var verwenden.
Lösung: Verwenden Sie das Schlüsselwort var einheitlich, um Konstanten zu definieren.
7. Problem mit dem Attribut „input.type“ Beschreibung des Problems: Das Attribut „input.type“ unter IE ist schreibgeschützt, das Attribut „input.type“ unter Firefox jedoch schreibgeschützt.
Lösung: Ändern Sie das Attribut input.type nicht. Wenn Sie es ändern müssen, können Sie zunächst die ursprüngliche Eingabe ausblenden und dann an derselben Position ein neues Eingabeelement einfügen.
8. Window.event-Problem Problembeschreibung: window.event kann nur unter IE ausgeführt werden, nicht jedoch unter Firefox. Dies liegt daran, dass das Firefox-Ereignis nur an der Stelle verwendet werden kann, an der das Ereignis auftritt.
Lösung: Fügen Sie den Ereignisparameter zu der Funktion hinzu, in der das Ereignis auftritt, und verwenden Sie var myEvent = evt?evt:(window.event?window.event:null) im Funktionskörper (vorausgesetzt, der formale Parameter ist evt).
Beispiel: