2008-10-27 13 views
5

Doskonała książka Davida Flanagana na temat JavaScriptu ma przykład pokazujący, jak wykonywać kwerendy XPath w IE. Na stronie 518 wydanie piąte, można zobaczyć następujący fragment kodu pochodzący z przykładu 21-10:Zaskakujący problem XPath na IE

// In IE, the context must be an Element not a document, 
// so if the context is a document, use the documentElement instead 
if (context == doc) context = doc.documentElement; 
return context.selectNodes(this.xpathText); 

znalazłem się na własnej skórze, że ten kod jest absolutnie konieczne. Pojawia się (chociaż nie mogę zrozumieć dlaczego), że w IE wydaje się, że XMLHttpRequest losowo zwraca odwołanie do dokumentu odpowiadającego odebranemu XML lub documentElement. Co tu się dzieje?

+0

Nigdy nie widziałem tak się stało i używam XHR obszernie. Czy możesz pokazać więcej kodu do repro? – AnthonyWJones

Odpowiedz

1

Wierzę, że odpowiedziałeś na własne pytanie, tak często IE zwraca odniesienie do dokumentu lub do elementu dokumentu, jeśli instrukcja if jest po prostu szybkim warunkiem, aby go naprawić, jeśli to konieczne.

Jeśli pyta, dlaczego IE robi, nie sądzę, ktoś tutaj będzie w stanie udzielić takiej odpowiedzi ....

+0

Dzięki! Dobrze wiedzieć Nie oszaleję :-) Jakoś wierzyłem (jak Einstein), że Bóg (i MS) nie gra w kości z wszechświatem! –

+0

Ale wszyscy wiemy, że robią! Po wyglądzie wydaje się, że wymieniony problem jest bardziej powszechny na IE 6 niż inne wersje. –