Globaler Variablenzugriff auf HTML-Element-IDs
Es stellt sich die Frage nach der angemessenen Handhabung des Zugriffs auf HTML-Element-IDs über globale Variablen. Im gegebenen Beispiel erlaubt Chrome den direkten Zugriff auf ein Element mit der ID „a“ über a.stuff(), während Firefox die Verwendung von document.getElementById('a') erfordert.
Specification
Die HTML4-Spezifikation beschreibt dieses Verhalten nicht explizit. Es verbietet jedoch auch nicht die Praxis, Element-IDs in globale Variablen umzuwandeln. Die WHATWG-HTML-Spezifikation schreibt dieses Verhalten derzeit vor und betrachtet den globalen Zugriff auf Element-IDs als Legacy- oder Kompatibilitätsproblem.
Implementierung
Wichtige Browser, einschließlich Chrome und Firefox (in Quirks-Modus) haben dieses Verhalten aus Kompatibilitätsgründen übernommen. Firefox ermöglicht im strikten Modus jedoch auch den direkten Zugriff auf Elemente über globale Variablen, die Implementierung ist jedoch möglicherweise unzuverlässig.
Mehrdeutigkeit
Wenn sowohl eine globale Variable a als auch Ist ein HTML-Element mit der ID „a“ vorhanden, hängt das Verhalten vom Ausführungskontext ab. In den meisten Fällen priorisiert JavaScript die globale Variable a gegenüber dem HTML-Element. Die Verwendung globaler Variablen für Element-IDs wird jedoch aufgrund möglicher Konflikte und Namensraumverschmutzung im Allgemeinen verpönt.
Sonderzeichen in HTML-IDs
HTML-IDs können Bindestriche enthalten (- ), Doppelpunkte (:) und Punkte (.), Zeichen, die nicht in JavaScript-Bezeichnern verwendet werden können. Um über globale Variablen auf diese Elemente zuzugreifen, würden Browser sie übersetzen. Beispielsweise könnte ein Element mit der ID „foo-bar“ über die globale Variable foo-bar zugänglich sein.
Fazit
Während der Praxis, Element-IDs global zu machen Variablen haben historische Unterstützung, sie sind in der HTML4-Spezifikation nicht explizit angegeben. Die WHATWG-HTML-Spezifikation erfordert dieses Verhalten, empfiehlt jedoch die Verwendung von document.getElementById() oder anderen Methoden für den Zugriff auf Elemente. Die Verwendung globaler Variablen für Element-IDs sollte aufgrund von Verwirrung und möglichen Konflikten mit anderen Variablen im globalen Namespace vermieden werden.
Das obige ist der detaillierte Inhalt vonWarum kann ich in JavaScript manchmal direkt als globale Variablen auf HTML-Element-IDs zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!