Maison >interface Web >js tutoriel >Pourquoi l'attribut onclick de mon script utilisateur provoque-t-il une « erreur de référence non détectée : la fonction n'est pas définie » ?
Dans un script utilisateur, une tentative d'appel d'une fonction via un attribut onclick entraîne un Uncaught ReferenceError : la fonction n'est pas définie.
Le comportement traditionnel de l'attribut onclick, où la fonction est définie dans le script, ne fonctionne pas dans les scripts utilisateur en raison des mécanismes de sandboxing.
Pour résoudre ce problème, utilisez toujours addEventListener() au lieu de l'attribut onclick.
Remplacez l'attribut onclick par :
document.getElementById("ElementID").addEventListener("click", functionName, false);
Écrasements du DOM et gestionnaires d'événements
Évitez d'utiliser innerHTML ou externalHTML pour écraser des éléments DOM plusieurs fois, car cela supprime les gestionnaires d'événements existants.
Identifiants uniques
Assurez-vous que chaque élément possède un identifiant unique. La réutilisation des identifiants crée des problèmes de validation.
Dans ce code, l'attribut onclick a été remplacé par addEventListener() et le problème d'écrasement du DOM a été résolu :
for (i = 0; i < EmoteURLLines.length; i++) { if (checkIMG (EmoteURLLines[i])) { emoteTab[2].innerHTML += '<span>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!