Heim >Web-Frontend >js-Tutorial >JavaScript-kompatibel mit mehreren Browsern
Javascript kompatibel mit mehreren Browsern
1. Document.formName.item("itemName") Problem
Problembeschreibung: Unter IE können Sie document.formName.item("itemName") oder document.formName verwenden . elements["elementName"]; unter Firefox kann nur document.formName.elements["elementName"] verwendet werden.
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 Sammlungsobjekte zu erhalten.
3. Probleme 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 abzurufen getAttribute( ), um benutzerdefinierte Eigenschaften abzurufen.
Lösung: Benutzerdefinierte Attribute über getAttribute() abrufen.
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. Sie können getElementById("idName") nur verwenden, um das HTML-Objekt mit der ID idName abzurufen.
Lösung: Verwenden Sie getElementById("idName") einheitlich, um das HTML-Objekt mit der ID von idName zu erhalten.
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 verwendet werden Dokument, jedoch nicht unter Firefox; unter Firefox können Sie es mit Variablennamen mit derselben HTML-Objekt-ID verwenden, die unter IE nicht verwendet werden können.
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. Input.type-Attributproblem
Problembeschreibung: Das Attribut „input.type“ unter IE ist schreibgeschützt; das Attribut „input.type“ unter Firefox ist jedoch schreibgeschützt.
Lösung: Ändern Sie nicht das Attribut input.type. 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)
Beispiel im Funktionskörper (unter der Annahme des formalen Parameters). ist evt) :