11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

il est facile d'attacher un nouvel évènement à une balise qu'il soit prédéfini (onclick, onload, onblur ...), ou bien créé par le concepteur du code avec une fonction JavaScript.

Je souhaiterai savoir s'il était possible de connaitre facilement l'ensemble des évènements attachés à une balise ? (chemin inverse)

Si je n'ai pas été assez clair, je répondrai à toutes questions que vous me poseriez.

Merci de vos réponses, et s'il vous plait n'hésitez pas à me répondre avec des phrases et bien entendu n'ayez pas peur de sortir l'artillerie lourde sur vos réponse
Modifié par daronmaster (15 Jan 2009 - 08:53)
Bonjour,

Tu dois pouvoir avec un fonction du genre :

displayAttributes = function(id) {
	var element = document.getElementById(id);
	var events = 'Evénements attachés : ';
	
	for (var i = 0; i < element.attributes.length; i++) {
		switch(element.attributes\[i\]) {
			case 'onload' : events += 'onload, '; break;
			case 'onmouseover' : events += 'onmouseover, '; break;
			case 'onclick' : events += 'onclick, '; break;
			case 'onkeypress' : events += 'onkeypress, '; break;
			// etc...
		}
	}
	
	alert(events);
}


PS : enlève les backslashes avant les crochets, je l'ai ai mis car sinon les crochets ne s'affichent pas.

Le problème est que tu dois entrer manuellement le nom de l'événement.
Essaye sinon de voir avec attributes\[i\].nodeName (je ne t'ai pas fait de fonction avec car je ne sais pas si ça fonctionne, je préfère ne pas donner de code non fonctionnel).
Modifié par Noix de Coco (15 Jan 2009 - 22:25)