|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : juillet 2008 Messages : 120 ![]() |
Bonjour,
Je souhaite , sur une page que je génère dynamiquement, passer des variables à des noeuds du DOM, afin de pouvoir travailler dessus en js. Conceptuellement, je souhaite avoir une page html contenant par exemple : Code html :
Toutefois, je suppose que générer un tel code html n'est pas très propre (en particulier, je dois violer allègrement ma dtd) ; et je n'ai aucune certitude quant à la portabilité de cette solution. Aussi, ma question est : quelle est la manière canonique de - passer de telles valeurs lors de la génération dynamique de ma page - lire / réécrire ces valeurs, en js, durant la durée de vie de ma page ? (À titre indicatif : je souhaite, pour ma culture, savoir comment le faire en js "pur", mais puisque j'utilise mootools, des réponses utilisant ce framework me satisferont également) Je vous remercie par avance. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
disons que tu peux affecter une propriété arbitraire à un objet dom par simple déclaration;
ce qui ne déclenchera pas une apocalypse au niveau du dom; |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : juillet 2008 Messages : 120 ![]() |
Merci pour cette réponse. En faisant ainsi, je peux associer des variables à des noeuds du dom durant la vie de la page.
En revanche, m'est-il possible de faire en sorte d'avoir ces variables dès le départ (ie : avant que le js s'exécute), ou alors dois-je obligatoirement ajouter une couche de js d'initialisation pour setter ces valeurs ? |
|
|
00
|
|
|
#4 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
malheureusement tous les navigateurs ne reconnaissent pas les propriétés exotiques au démarrage.
Il te faudra en effet ajouter une couche d'initialisation su le onload de la page. Certains ne sont pas firands de cette methode de surcharge de propriétés des objets. Jquery utilise un data() qui permet de stocker des données au niveau de l'objet sans modifier le DOM
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : juillet 2008 Messages : 120 ![]() |
Je vous remercie pour ces réponses, qui m'aident à y voir plus clair.
Je vais pouvoir adapter mon code en conséquence. |
|
|
00
|
|
|
#6 | |||
|
Membre expérimenté
![]() ![]() Duke Jikel Inscription : mai 2010 Messages : 340 ![]() |
Citation:
element.getAttribute('monattribut'); fontionnera PARTOUT. Citation:
Citation:
Voila une solution |
|||
|
|
20
|
|
|
#7 |
|
Membre habitué
![]() Inscription : juillet 2008 Messages : 120 ![]() |
Merci pour ces précisions !
|
|
|
00
|
|
|
#8 | ||
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
Code :
En fait comme je code valide w3c en strict, tout attribut exotique est rejeté dans le html au départ. si par hasard j'ai besoin dans un contexte sans lib d'avoir un attribut sur un objet ce qui n'est en effet pas la mort, je l'attribues dans un init. Sinon j'utilise le data de jquery
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
||
|
|
00
|
|
|
#9 | |||
|
Membre expérimenté
![]() ![]() Duke Jikel Inscription : mai 2010 Messages : 340 ![]() |
Citation:
l'attribut HTML, tu devras plutôt venir le récupérer par "getAttribute" que par un elm.attribut |
|||
|
|
00
|
|
|
#10 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
Oui mais ayant pris pour habitude de code en valide strict, je ne me sers jamais des attributs html.
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
|
|
|
00
|
|
|
#12 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
un validateur w3c te pointe une erreur si tu colles un attribut exotique dans une balise html. D'ou le fait que je n'en utilise jamais.
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#13 | ||||
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 419 ![]() |
Une petite précision sur les attributs et propriétés.
lorsque on utilise du code HTML comme Code html :
<div id="myDiv" myValue="hello world">...</div> lorsqu'on utilise si un attribut myValue existe alors il est mis à jour sinon la propriété myValue est crée. Certain navigateur acceptent plus ou moins bien les attributs non standard. Le Document Type peut influer sur cette interprétation. Le HTML Strict sera plus contraignant que transient. mais il y a une fonction du DOM qu'on oublie un peu c'est le support des namespaces. Code html :
en général on utilise un nom de domaine inversé. ensuite les attributs son préfixé du nom du namespace. ici "perso" normalement on met ce que l'on veut pour faire dans les règles on devrait dans les traitement chercher l'attribut xmlns:... ayant pour valeur son url pour déterminer ce préfixe. souvent son se content d'utiliser directement ce qu'on à mis. le déterminer dynamiquement permet de fournir une lib qui traitera ces attribut sans avoir à connaitre à l'avance ce que choisira le développeur. ensuite dans le code le DOM fournis les méthodes getAttributeNS et setAttributeNS voici un exemple Code html :
la librairie js/org.jquery.fast.js va chercher le namespace don l'urn est urn:org.jquery.fast puis elle va traiter tous les attributs du namespace fast:includePath lui donne le chemin pour inclures les composants fast:class lui indique qu'un tag doit être traité par le composant ... fast:checktype attache une méthode de vérification etc. on reste ainsi conforme au W3C reste un détail d'importance. pour faire une validation du code HTML il faut écrire une DTD (je préfère les schémas xsd) qui inclus HTML et le Namespace. ce n'est pas toujours simple. A+JYT |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com