2008-10-27 9 views
5

L'excellent livre de David Flanagan sur JavaScript a un exemple qui montre comment effectuer des requêtes XPath dans IE. A la page 518 de cinquième édition, vous pouvez voir l'extrait de code suivant d'exemple 21-10:Déconcerté par un problème de XPath sur 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); 

J'ai découvert la dure que ce code est absolument nécessaire. Il semble (bien que je ne comprenne pas pourquoi) que sur IE XMLHttpRequest semble retourner aléatoirement une référence au document correspondant au document XML reçu ou au documentElement. Qu'est-ce qu'il se passe ici?

+0

Je ne l'ai jamais vu cela et je l'utilise largement XHR. Pouvez-vous montrer plus de code pour un repro? – AnthonyWJones

Répondre

1

Je crois que vous avez répondu à votre propre question, de temps en temps IE renvoie une référence au document, ou à l'élément de document, l'instruction if est simplement une condition rapide pour le réparer si nécessaire.

Si vous demandez pourquoi IE fait, je ne pense pas que quelqu'un ici va être en mesure de donner cette réponse ....

+0

Merci! Bon à savoir Je ne deviens pas fou :-) Je croyais (comme Einstein) que Dieu (et MS) ne jouait pas aux dés avec l'univers! –

+0

Mais nous savons tous qu'ils le font! En outre, après avoir regardé, il semble que le problème que vous avez énuméré est un peu plus commun sur IE 6 que d'autres versions .. –