Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2011, 20h10   #1
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
Par défaut Ajouter une fonction aux elements html

Bonsoir,

Le sujet résume assez bien le problème mais il n'est pas si simple qu'il n'y parait, je m'explique, j'aimerais attribué à chaque élément html une fonction bon on peu se dire ok on fais un getElementByTagName('*').ma_fonction = function() { alert(''); }, bon admettons même si selon le nombre d’élément de la page, ce serait assez long surtout si on veut pouvoir lui donner plusieurs fonction :/
Mais si l'utilisateur crée une balise, elle n'aura pas ma_fonction de disponible a part de refère l'exemple si dessus mais bon la on s'en sort pas x_x (trop gourmande en temps), donc il faudrait modifier le constructeur de l'objet html directement pour qu'a chaque fois qu'une balise est créer elle érite de cette fonction, ma question est donc, cela est-il possible ?

Merci
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 21h31   #2
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
Code :
1
2
3
HTML{balise}Element.prototype.myfunc = function () {
alert('');
}
pour chaque balise (où {balise} est la balise)
Donc on peu déjà modifier par groupe de balise les éléments et non-plus élément par élément, (c deja ca ) mais il faudrait trouver comment faire maintenant pour modifier l'ensemble des balises (si c'est possible)

a suivre

Tout aide est la bienvenue
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 21h36   #3
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
bon bas c'est bon j'ai auto la solution ~~

tout simplement:

Code :
1
2
3
HTMLElement.prototype.myfunc = function () {
alert('');
}
Cela permettra l'ajout de myfunc dans tout les elements html
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 23h03   #4
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Bonsoir,
Juste par curiosité, quel serait l'intérêt pour toi de faire ça ?
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 23h14   #5
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
A enfin fini le monologue ^^

Ajouté des fonctions de selection par exemple

Puis je me demander si tout comme c'était faisable avec Array.prototype si c'était aussi faisable avec les éléments HTML
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2011, 16h02   #6
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Oui, c'est chouette de pouvoir manipuler le prototype des éléments HTML !
… Sauf que, sous IE, on peut pas. C'est pourquoi Prototype, jQuery et d'autres frameworks ont adopté la solution d'enrichir les éléments à chaque fois qu'on en a besoin.

La fonction d'enrichissement est souvent appelée $.
Code JS :
1
2
3
4
5
6
function $(element) {
   element.maFonction = function() {
      ...
   }
   return element;
}

Et dans chaque fonction qui manipule un ou plusieurs éléments HTML, elle est appelée en premier lieu :
Code JS :
1
2
3
4
function jouerDuFlutiau(element) {
   element = $(element);
   ...
}

En réalité, c'est un peu plus complexe. Pour optimiser le tout, les frameworks utilisent un mécanisme de détection pour savoir s'ils peuvent enrichir les prototypes ou s'ils doivent enrichir les éléments à chaque appel…
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2011, 22h34   #7
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
Ah m***e

dommage :/ Mais pourquoi IE n'est pas comme les autres ? ><
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 17h51   #8
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Pour mettre à l'épreuve l'ingéniosité des développeurs de frameworks
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 17h54   #9
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Depuis la version 8, IE met à disposition les objets de type HTMLElement
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 18h54   #10
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
Par quel moyen d'appel ?

Erreur avec IE9: 'HTMLElement' is undefined
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 19h27   #11
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Ça doit dépendre du DOCTYPE…
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 07h57   #12
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Pour IE l'interface générale est Element et non HTMLElement, en revanche, les objets comme HTMLDivElement sont bien reconnus.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 12h25   #13
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
Citation:
Envoyé par nadox Voir le message
Bonsoir,
Juste par curiosité, quel serait l'intérêt pour toi de faire ça ?
ben des truc comme ça
http://www.developpez.net/forums/d10...hissement-dom/
A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 21h13   #14
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
Citation:
Envoyé par Bovino Voir le message
Pour IE l'interface générale est Element et non HTMLElement, en revanche, les objets comme HTMLDivElement sont bien reconnus.
'Element' n'est pas reconnu sur IE du moins pas sur la version 9 O_o
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 21h31   #15
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
J'ai testé sous IE9 :
– en mode Quirks, pas de HTMLElement
– avec un DOCTYPE XHTML 1.0 Strict, ça marche impec.

__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 22h13   #16
Membre régulier
 
Avatar de the-destroyer
 
Homme
Lycéen
Inscription : mars 2009
Messages : 201
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 17
Localisation : France

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2009
Messages : 201
Points : 80
Points : 80
Alors la je comprend pas ><

Avec IE9 ca marche que lorsque le mode 'compatibilty view' est desactivé...

(il est situé a cote du bouton rafraichissement)
the-destroyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 08h53   #17
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
en réalité IE depuis la version 7 ou 8 je sais plus embarque plusieurs moteurs de rendus dont celui d'IE6 pour des raison de compatibilité

du coup lorsque le mode compatible est activé le moteur de rendu utilisé n'est pas obligatoirement celui d'IE9 mais une version antérieure.

et les objets du DOM sont des objet directement crée par le moteur de rendu.

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h45.


 
 
 
 
Partenaires

Hébergement Web