IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ajouter une fonction aux elements html


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    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

  2. #2
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    bon bas c'est bon j'ai auto la solution ~~

    tout simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HTMLElement.prototype.myfunc = function () {
    alert('');
    }
    Cela permettra l'ajout de myfunc dans tout les elements html

  4. #4
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    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
    Par défaut
    Bonsoir,
    Juste par curiosité, quel serait l'intérêt pour toi de faire ça ?

  5. #5
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    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

  6. #6
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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…
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    Ah m***e

    dommage :/ Mais pourquoi IE n'est pas comme les autres ? ><

  8. #8
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter dynamiquement une fonction à un element
    Par suckthewindow dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/07/2008, 18h56
  2. [DOM] Ajouter une méthode à un element HTML
    Par jo_dalton dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2007, 17h10
  3. Réponses: 6
    Dernier message: 08/01/2007, 14h13
  4. comment ajouter une image dans mon HTML??
    Par Mickey.jet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/03/2006, 15h12
  5. comment ajouter une langue aux outils de ms office?
    Par redabadache3 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 20/11/2005, 19h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo