Autor Zpráva
wizard
Profil
Ahoj lidi, nevíte proč mi IE hlásí, že "objekt tuto vlastnost nepodporuje" v tomhle kousku kódu:

result = xmlDocument.documentElement;
num = result.childNodes;
num_of_items = num.length;
items = result.firstChild;

nelíbí se mu asi 1. nebo 2. řádek
Godson7
Profil
wizard: zdá se mi, že je vše ok. Zkus dát jako 5. řádek tohle: alert(items.text); a mělo by to vypsát obsah prvního elementu v tom XML documentu...

EDIT: za předpokladu, že ten XML document je validní
Joker
Profil *
Můžete třeba mít v xmlDocument null, nebo něco takového.

Když máte nějakou takovouhle chybu, zkuste si do kódu dát kontrolní výpisy a uvidíte to hned. (odhaduji, že nemáte k dispozici debugger... pokud ano, radši skript krokujte v debuggeru)

dejte si na začátek
alert(xmlDocument);
alert(zmlDocument.documentElement);
a uvidíte.
wizard
Profil
To jsem všechno odzkoušel, ale chyba byla jinde. Jde o to, že IE parser pracuje jinak s kořenovým elementem. Tedy místo:

result = xmlDocument.documentElement;
num = result.childNodes;

se pro IE musí použít konstrukce:

num = xmlDocument.childNodes;
izsak
Profil
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsd k/html/5db33584-1d6c-4c82-8b99-0a4bafdf71b7.asp

wizard
xmlDocument.documentElement vráti null čo je dôvod, že na result sa nedá zavolať childNodes a preto aj funguje xmlDocument.childNodes (len xmlDocument nie je null, to by to už spadlo o riadok vyššie :) ).
Joker
Profil *
wizard
Ale v tom případě by ty výpisy fungovaly:
alert(xmlDocument); -> "[object]"
alert(xmlDocument.documentElement); -> "[object]"
alert(result.childNodes); -> chybová hláška

no a víte, kde je problém.
wizard
Profil
Problém je v chápání kořenovýho elementu, IE vezme jako root <?xml ... ?>, ale ostatní browsery vezmou až opravdovej root element
Toto téma je uzamčeno. Odpověď nelze zaslat.

0