Uvnitř proměnlivých prototypů DOM IE 8

Když byl vydán Internet Exporer 8, velmi diskutovanou funkcí byly měnitelné prototypy DOM. Dnes ráno jsem se dokopal, abych přesně zjistil, co je a co není podporováno. Jak by se dalo očekávat, podpora není tak plná, jak by všichni věřili pěknému zápisu. Zde je rychlé shrnutí:

  • Node typ neexistuje, takže stále nemáte přístup k Node.ELEMENT_NODE jako můžete v jiných prohlížečích.
  • Element typ existuje, ale od Node ne, nejde o podtyp.
  • HTMLElement typ neexistuje, i když technicky vzato HTMLElement je základní typ pro všechny ostatní typy prvků HTML. Například HTMLBodyElement dědí z HTMLElement který dědí z Element .
  • Getters a setters jsou podporovány prostřednictvím __defineGetter__() a __defineSetter__() . Bohužel jsou k dispozici pouze pro typy DOM a nikoli pro nativní objekty JScript.
  • Další dostupné typy:NodeList , NamedNodeMap , Attr , Text , DOMImplementation , HTMLDocument , HTMLCollection . Každý z nich podporuje getry a nastavovače.
  • Žádný z typů DOM není nativním typem JScript, což znamená, že stroj JScript vidí všechny funkce na prototypech jako objekty a Array.prototype.slice() stále nelze použít na NodeList nebo HTMLCollection objekty.

Myslím, že je to dobrý začátek od místa, kde byl IE před tímto vydáním, i když stále poněkud zklamáním. Doufejme, že tato funkce bude podrobnější, jakmile přejdou do GA.


No