Sur quelle base un contrôle if (document.addEventListener)
renvoie false
? Y a-t-il un moyen de changer cela?pourquoi une vérification if (document.addEventListener) peut-elle renvoyer false
Répondre
Il renvoie une valeur false (bien que pas réellement false
) si elle n'est pas définie. Il s'agit d'un test feature (AKA object) detection standard.
Vous pouvez le modifier en implémentant votre propre version. Plus généralement, vous utiliserez ceci dans une fonction wrapper avec le } else {
ayant la manipulation spécifique d'IE.
if (document.addEventListener)
évalue à false
s'il n'y a aucune méthode addEventListener
dans document
. Cette vérification est généralement effectuée pour voir si vous pouvez utiliser cette méthode pour attacher l'événement à l'élément DOM (fonctionne dans la plupart des navigateurs sauf IE).
Y a-t-il un moyen de changer cela?
Cette question ne me comprends pas complètement. Probablement, vous voulez quelque chose comme document.attachEvent('onload', callback);
pour IE. Vous ne pouvez pas vraiment ajouter la méthode addEventListener
pour documenter (bien, peut-être que vous pouvez, mais cela n'aurait pas de sens).
je veux dire est-ce que je peux faire quelque chose pour ajouter cette méthode au document? – Miroo
@Miroo Non, mais vous pouvez utiliser la méthode spécifique à IE pour gérer les événements. (comme 'onload' dans mon exemple) –
et il fonctionne avec moi sur IE9 mais sur une application différente sous la structure 4 – Miroo
Si cet extrait de code retourne false
, cela signifie que la propriété méthode addEventListener
est pas en charge par le navigateur. Tel est le case for Internet Explorer, où attachEvent
est utilisé à la place:
if (document.addEventListener){
document.addEventListener(...);
} else if (document.attachEvent){
document.attachEvent(...);
}
Si vous utilisez Internet Explorer, il retournera faux, car il a sa propre méthode. –