Hello les gens,
Je fais face à un comportement étrange que je n'avais jamais rencontré avant la mise à jour automatique vers IE8. Je n'ai pas put isoler le cas, et je ne peux donc guère faire mieux que d'en parler dans des termes généraux.
Voici : des noeuds issus du DOM, qui génèrent des exceptions si je tente d'accéder à une propriété pourtant standard (dans ce cas précis, nodeValue sur un noeud text, car nodeType === 3). J'utilise courament une petite fonction JavaScript qui me sert à faire des « dump » d'objet de manière générique, en listant les propriétés définies dans l'objet puis en affichant la valeur de la propriété. Là également, exceptions levées, pour des propriétés dont le nom existe pourtant dans le « dictionnaire » de l'objet, mais auxquels il est impossible d'accéder. Ni undefined, ni null, rien, une exceptions est immédiatement levé, et si elle n'est pas interceptée, IE8 affiche le message « argument invalide ». Seuls lastChild, nodeName, attributes, nodeType, childNodes et firstChild, sont accessibles, toutes les autres propriétés, y compris parentNode et nodeValue, génère automatiquement une exception. Que par exemple parentNode ne soit pas accessible est déroutant, car le noeud existe bien dans le document, y est lié, puisqu'il est récupéré suite à une exploration d'une partie du document.
Le cas ne se produit ni sous Opera, ni sous Safari par exemple. Seulement sous IE8.
Je suis désolé de ne pas pouvoir exposer le cas avec plus de détails (l'isoler va me demander un temps fou, si encore c'est possible). Je n'attend pas à vrai dire de solution (pour ça je vais me débrouiller), mais je suis surtout à la pêche aux infos sur la question, par exemple des choses comme « est-ce que ça dit quelque chose à quelqu'un également ? »
À moins qu'une énormité ne m'échappe, je ne m'explique pas ce problème.
Modifié par hibou57 (21 Sep 2009 - 18:26)
Je fais face à un comportement étrange que je n'avais jamais rencontré avant la mise à jour automatique vers IE8. Je n'ai pas put isoler le cas, et je ne peux donc guère faire mieux que d'en parler dans des termes généraux.
Voici : des noeuds issus du DOM, qui génèrent des exceptions si je tente d'accéder à une propriété pourtant standard (dans ce cas précis, nodeValue sur un noeud text, car nodeType === 3). J'utilise courament une petite fonction JavaScript qui me sert à faire des « dump » d'objet de manière générique, en listant les propriétés définies dans l'objet puis en affichant la valeur de la propriété. Là également, exceptions levées, pour des propriétés dont le nom existe pourtant dans le « dictionnaire » de l'objet, mais auxquels il est impossible d'accéder. Ni undefined, ni null, rien, une exceptions est immédiatement levé, et si elle n'est pas interceptée, IE8 affiche le message « argument invalide ». Seuls lastChild, nodeName, attributes, nodeType, childNodes et firstChild, sont accessibles, toutes les autres propriétés, y compris parentNode et nodeValue, génère automatiquement une exception. Que par exemple parentNode ne soit pas accessible est déroutant, car le noeud existe bien dans le document, y est lié, puisqu'il est récupéré suite à une exploration d'une partie du document.
Le cas ne se produit ni sous Opera, ni sous Safari par exemple. Seulement sous IE8.
Je suis désolé de ne pas pouvoir exposer le cas avec plus de détails (l'isoler va me demander un temps fou, si encore c'est possible). Je n'attend pas à vrai dire de solution (pour ça je vais me débrouiller), mais je suis surtout à la pêche aux infos sur la question, par exemple des choses comme « est-ce que ça dit quelque chose à quelqu'un également ? »
À moins qu'une énormité ne m'échappe, je ne m'explique pas ce problème.
Modifié par hibou57 (21 Sep 2009 - 18:26)