begin process at 2012 05 29 02:33:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

AU SECOURS !!!

 > 

Ajouter une méthode à un objet HTML ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ajouter une méthode à un objet HTML ...

mercredi 3 août 2005 à 20:07:52 | Ajouter une méthode à un objet HTML ...

LocalStone

Alors voilà ... J'ai une question assez pointue que je n'arrive pas à résoudre tout seul et c'est pourquoi je demande votre aide ... Comment je peux faire pour ajouter une méthode à un élément HTML. Par exemple :
<script>
   Object.prototype.Test= function ()
   {
      alert('Test ! ');
   }
</script>

Et du coup si je fais par exemple : document.getElementById('n_importe_quoi').Test();, bah j'ai une boite de dialogue qui apparait ...
Je sais pas du tout si c'est la bonne voie, mais je pense que l'on peut comprendre ma demande à travers cet exemple.
J'avoue que ça m'aiderait beaucoup de trouver ... Snif, alors aidez-moi !
++ !
LocalStone
jeudi 4 août 2005 à 09:46:43 | Re : Ajouter une méthode à un objet HTML ...

bultez

Membre Club

Bonjour,
je ne sais pas si j'ai bien compris ....
un ch'tit exemple pour voir ?

<script type="text/javascript">
function appel(btn)
{ alert ("après appui sur "+btn+"\r\nclick sur le texte"); }
</script>
</HEAD>
<BODY>
<form name="frm">
<input type="text"
  name="txt"
  size=10>
<button onclick='frm.txt.setAttribute("size",32);'>Modif size</button>
<button onclick='frm.txt.setAttribute("onclick",function(){appel("bouton");} ) ;'>ajout Onclick</button>
</form>
</BODY>


Cordialement. Bul. ~
Site~~Mail~

jeudi 4 août 2005 à 13:46:49 | Re : Ajouter une méthode à un objet HTML ...

LocalStone

Salut Bultez, merci de ton aide.
Ta methode pour ajouter une methode (étrange, ça ...) marche très bien. Mais elle fonctionne que avec l'élément que j'ai défini. En fait, moi je voudrais que ça marche pour tous les éléments de la page sans que j'ai à le faire un par un. En fait, voilà un exemple concret :
<html>
   <head>
      <script type="text/javascript">
         var arrYellow = [
                            ["borderStyle", "solid"],
                            ["borderWidth", "1px"],
                            ["borderColor", "#FFFF00"],
                            ["backgroundColor", "#FFFFEE"],
                            ["color", "#FFFF00"]
                         ];
         function ApplyStyle(arrList)
         {
            var i;
            for(i = 0; i < arrList.length; i++)
            {
               this.style[arrList[i][0]]= arrList[i][1];
            }
         }
         onload = function()
         {
            frm.bouton.setAttribute("ApplyStyle", ApplyStyle);
         }
      </script>
   </head>
   <body>
      <form name="frm">
         <button name="bouton" onclick="this.ApplyStyle(arrYellow);">ajout Onclick</button>
      </form>
   </body>
</html>

Je pense que tu saisis le but de la fonction. Mais le truc, c'est que j'aimerais qu'elle fonctionne pour n'importe quel élément HTML. Donc si tu as une idée ...

LocalStone
jeudi 4 août 2005 à 14:58:17 | Re : Ajouter une méthode à un objet HTML ...

bultez

Membre Club

un ch'tit exemple ou on passe l'objet
où appliquer en paramètre


<script type="text/javascript">
function mem(obj,att1,att2)
{ obj.setAttribute(att1,att2); }
function appel(btn)
{ alert ("après appui sur "+btn+"\r\nclick sur le texte"); }
</script>
</HEAD>
<BODY>
<form name="frm">
<input type="text"
  name="txt">
<button onclick="mem(frm.txt,'size',32);">Modif size</button>
<button onclick="mem(frm.txt,'onclick',function(){appel('bouton');} ) ;">ajout Onclick</button>
</form>
</BODY>

normalement tu es assez fort pour appliquer ça à
tous les éléments d'un contenant ( body, form .. )
mais si besoin de plus ....

Cordialement. Bul. ~Site~~Mail~

jeudi 4 août 2005 à 15:13:44 | Re : Ajouter une méthode à un objet HTML ...

LocalStone

Oui ! Mais non ...
En fait, pour la beauté du code, je veux rajouter la méthode ApplyStyle(); que j'ai définie avant à TOUS les éléments HTML. Bien sur que je peux faire une fonction comme tu m'as dit, mais c'est moins ... Joli !
Par exemlpe :
<script>
   Array.prototype.getLength = function()
   {
      return this.length;
   }
</script>

Ensuite, quelque soit le tableau que je vais créer, la méthode va être applicable à toutes les instances.
<script>
   test = new Array("le ciel", "les oiseaux", "ta mère");
   alert(test.getLength()); // Me renveras 3.
</script>

Et bah je cherche à créer une méthode pour tous les éléments HTML (tous ce que l'on peut récuperer par getElementById(), getElementsByTagName(), etc.) ...
J'espère que je suis assez clair ...
Voilà ! T'as vu, c'est pas du gateau ...
LocalStone
jeudi 4 août 2005 à 15:40:52 | Re : Ajouter une méthode à un objet HTML ...

bultez

Membre Club

tous les elements d'un formulaire
c'est ok mais les éléments d'une page ?
je ne sais plus [ ou pas ]

for ( n=0;n<frm.elements.length;n++)
      { sûrement un switch en fonction du type
          switch (frm.elements[n].type) {
             case "text":
               appliquer setattribute à frm.elements[n];
               break;
             case ...
             default:
               break;   }   }

Cordialement. Bul. ~Site~~Mail~

jeudi 4 août 2005 à 16:40:58 | Re : Ajouter une méthode à un objet HTML ...

LocalStone

J'avais pas pensé à ça ... Mais je sais pas, ça fait bricolage. Mais en même temps, je crois que c'est ce que je vais faire. Le problème, c'est que si je crée un éélment avec createElement(); après que la boucle ait été lancée, alors la methode ne sera pas présente pour ce dernier. Donc en fait, non, ça va pas ...
Mais je suis sur qu'il doit y avoir un truc avec prototype ou quelque chose comme ça ... Mais j'ai (un peu) cherché sur MSDN et j'ai rien trouvé.
Merci de ton aide ! Parce que t'es le seul à avoir tenter des réponses, jusque là !
LocalStone
vendredi 5 août 2005 à 03:18:39 | Re : Ajouter une méthode à un objet HTML ...

GhislainLavoie

Réponse acceptée !
Salut!

Je ne crois pas qu'il sot possible d'ajouter une mehode a un objet html sans avoir préalablement ajouter cette methode.

Le prototypage ne fontionne que pour les éléments js qui sont créer avec des nouveaux constructeurs [new QQC(), QQC étant une fonction] ou les objets déjà définit dans js soit : les Array, Boolean, Date, Function, Number, Object  et String.

Faire une boucle pour tous les éléments comme propose Bul me semble la méthode la plus appropriée.  Et si tu créer des éeélments dynamiquement, il faudra appliquer les méthodes qu'il faut.

Pour réussir a exécuter le prototype Test() de ton exemple, il faudrait par exemple l'appliquer au niveau d'un objet pour lequel il est possible de l'appliquer.

Par exemple sur une string :

document.getElementById('QQC').className.Test();

A+, Ghislain

vendredi 5 août 2005 à 11:25:36 | Re : Ajouter une méthode à un objet HTML ...

LocalStone

Merci Ghislain,
C'est chiant, ça, ça veut dire que le Javascript à des limites, alors ... Merde.
++
LocalStone


Cette discussion est classée dans : test, ajouter, html, exemple, méthode


Répondre à ce message

Sujets en rapport avec ce message

Taille de caractères [ par Vincentsoft ] Salut,J'ai remarqué que tous les caractères, dans une page HTML, ne font pas la même largeur (en pixel).Par exemple, si j'écrit sur une ligne 100 cara Probleme menu javascript dans frame [ par yukhaa ] Voila j'ai un menu en javascript que j'ai integré dans une frame, seulement quand je clique su un lien ça me met le message suivant"top.site.location Besoin d'aide pour du HTML svp [ par dreamdavid ] Bonjour tout le monde, je tiens a feliciter ce forum qui vas beaucoup m'aider, avec tout se qui se trouve sur le site c vraiment genial pour un debuta javascript dans HTML [ par godelet ] Bonjour,je n'arrive pas à voir mon alert  lors du onClick dans la page html,  le code est le suivant :<script type="text/javascript" src="/adsl/inform Prob de guillemet double [ par pouda ] Salut les gars...voila mon prob j'introduit des balises dans un textarea pour générer du code html pour inserer les balis ajouter ce controle (cf photo) a une page web (html, js,..?) [ par junty94 ] bonjour, Je voulais savoir s'il était possible d'ajouter un controle de ce type sur une page html. (en passant, comment s'appelle ce controle ?) Editeur WYSIWYG - Ajouter du HTML à l'iframe [ par Tilix ] Salut, J'ai pris un petit editeur wysiwyg sur internet (Source : http://www.ibilab.net/webdev/exemples/editeur-wysiwyg.htm) Et je voudrais ajouter Séparer HTML et javascript [ par lowkey ] Bonjour à tous !!Je suis en train de développer mon site WEB et je souhaite séparer completement le html du js.Dans mon js, je devrais donc avoir quel Ajouter une propriété à un élément HTML [ par cramyh ] Bonjour,Dans ma page, j'ai besoin de lier à un élément HTML un objet javascript. Pour cela, j'ai pensé lui ajouter ce dernier en tant que propriété, e Page html [ par wix93 ] Bonjour,j'aimerais créer une page html mais j'ai en quelques sortes un obstacle :). Enfete j'aimerais que sur ma page lorsque je clique sur des mots-c


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,288 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales