Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
636 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Accès et modification d'un élément de ma page (DOM)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Accès et modification d'un élément de ma page (DOM)

n°1220984
seb306bzh
Posté le 12-10-2005 à 09:42:53  profilanswer
 

Bonjour, :hello:  
 
j'ai un problème en javascript pour modifier le texte d'une partie de ma page
 
ça marche sous ie mais pas sous firefox (nescape)
 
voila la page : http://cslocmine.free.fr/new/pompiers_individuel.php
 
http://img387.imageshack.us/img387/1597/17uk.png
 
lorsque l'on passe au dessus des minis photos la grande photo change (sous ie et ff ça marche) et le texte change (marche sous ie mais marche pas sous ff)
 
voila le code
 

Code :
  1. img src="photos/individuelle/ridel_stephane.jpg" width="47" onMouseOver="change_img('identite', 'document', 'photos/individuelle/vierge.jpg', 'photos/individuelle/ridel_stephane.jpg'), change_texte(1)">


 
 
la fonction change texte qui déconne sous ff

Code :
  1. function change_texte(num){
  2. //detection du navigateur
  3. var navigateur = navigator.appName;
  4. //le message a écrire
  5. var message = '<span class=\"Style4 Style1 Style5\"><b>Nom : </b>' + tab_nom[num] + '</span>';
  6. //on ecrit le message
  7. if(navigateur=="Netscape" ){
  8.  doc = "document";
  9.  sty = "";
  10.  htm = ".document";
  11. } else {
  12.  doc = "document.all";
  13.  sty = ".style";
  14.  htm = "";
  15. }
  16. var code_nom = eval(doc + '["pompier_nom"]' + htm);
  17. //alert (code_nom);
  18. if(navigateur=="Netscape" ){
  19.  code_nom.write(message);
  20.  code_nom.close();
  21. }else{
  22.  code_nom.innerHTML = message;
  23. }
  24. }


 
voila l'erreur que me donne la console javascript de FireFox :  
<b>Erreur : document.pompier_nom has no properties
Fichier Source : http://127.0.0.1/pompier_locmine/p [...] viduel.php
Ligne : 104</b>
 
 
Je dois avoir un pb pour accèder à l'élément de ma page
mais lequel ??
 
merci d'avance pour votre aide :hello:


---------------
merci http://forum.hardware.fr !!
mood
Publicité
Posté le 12-10-2005 à 09:42:53  profilanswer
 

n°1221131
oximore
A chacun ses oreilles...
Posté le 12-10-2005 à 13:25:43  profilanswer
 

Salut,
 
Si j'ai bien compris, pour netscape on obtient:
document["pompier_nom"].document.write(message);
 
Ne manque-t'il pas une référence à l'id de ton div?
En tout cas, j'utilise plutôt cette technique pour écrire dans un div:
ex: document.getElementById['pompier_nom'].value = message;
 
et au niveau de ton image, si c'est du javascript, ne faut'il pas mettre un ; au lieu d'une , pour séparer deux commandes:
img src="photos/individuelle/ridel_stephane.jpg" width="47" onMouseOver="change_img('identite', 'document', 'photos/individuelle/vierge.jpg', 'photos/individuelle/ridel_stephane.jpg'), change_texte(1)"> et mettre un ; à la place
 
Voilà,
J'espère que cela t'aidera.
 
Oximore

n°1221145
gatsusat
Posté le 12-10-2005 à 13:35:59  profilanswer
 

le document.write ne s'applique qu'à l'objet docuement !!
 
il faut utiliser le innerHTML pour rentrer du HTML dans un élément


---------------
Les CSS c'est bon mangez-en
n°1221157
oximore
A chacun ses oreilles...
Posté le 12-10-2005 à 13:57:15  profilanswer
 

Salut seb306bzh,
 

gatsusat a écrit :


il faut utiliser le innerHTML pour rentrer du HTML dans un élément


 
Entre autres, mais 'document.getElementById['nom_de_l'id'].value = message; ' marche très bien.
 
Oximore

n°1221285
FlorentG
Unité de Masse
Posté le 12-10-2005 à 16:00:12  profilanswer
 

oximore a écrit :


Entre autres, mais 'document.getElementById['nom_de_l'id'].value = message; ' marche très bien.
 
Oximore


La propriété value n'existe pas [:spamafote] Y'a une "nodeValue" par contre...

n°1221331
oximore
A chacun ses oreilles...
Posté le 12-10-2005 à 16:34:26  profilanswer
 

FlorentG a écrit :

La propriété value n'existe pas [:spamafote] Y'a une "nodeValue" par contre...


 
Ah bon, tiens... On ne doit pas avoir la même version!?
Chez moi ça marche très bien...  :sol:  
 
Oximore

n°1221764
FlorentG
Unité de Masse
Posté le 13-10-2005 à 08:21:32  profilanswer
 

C'est pas parce que ça marche que ça existe ;) Y'a tout un tas de propriétés propriétaires qui ne vont pas fonctionner chez tout le monde :( Essaye sous FireFox ou sous Opéra, tu verra que ça ne fonctionne pas.
 
D'ailleurs après vérification, ça ne fonctionne même pas sous IE :heink: T'es sûr de ton truc ?

n°1221788
seb306bzh
Posté le 13-10-2005 à 09:34:59  profilanswer
 

Tout d'abord merci pour vos réponses
 
alors j'ai essayé le :

Code :
  1. document.getElementById['pompier_nom'].value = message;


 
et effectivement ça fonctionne pas, c'est pareil j'ai l'erreur
 
http://img443.imageshack.us/img443/8350/18gs.png
 
J'ai essayé aussi
 

Code :
  1. document.getElementById['pompier_nom'].nodeValue = message;
  2. et
  3. document.getElementById['pompier_nom'].innerHTML = message;


 
 
 
et la version pour ie (dans le else) marche pourtant bien sous ie
 

Code :
  1. function change_texte(num){
  2. //detection du navigateur
  3. var navigateur = navigator.appName;
  4. //le message a écrire
  5. var message = '<span class=\"Style4 Style1 Style5\"><b>Nom : </b>' + tab_nom[num] + '</span>';
  6. if(navigateur=="Netscape" ){
  7.  document.getElementById['pompier_nom'].?? = message;
  8. }else{
  9.  document.all["pompier_nom"].innerHTML = message;
  10. }
  11. }


 
 :(


Message édité par seb306bzh le 13-10-2005 à 09:35:47

---------------
merci http://forum.hardware.fr !!
n°1221801
FlorentG
Unité de Masse
Posté le 13-10-2005 à 09:51:52  profilanswer
 

Version qui marche partout :

document.getElementById("pompier_nom" ).appendChild(document.createTextNode(message));


 
Je comprend pas trop ton coup avec la différence getElementById et document.all, vu que getElementById fonctionne aussi sous IE...

n°1221802
FlorentG
Unité de Masse
Posté le 13-10-2005 à 09:52:23  profilanswer
 

'fin faut aussi gérer le remplacement du texte, là ça ajoute bêtement...

mood
Publicité
Posté le 13-10-2005 à 09:52:23  profilanswer
 

n°1221803
FlorentG
Unité de Masse
Posté le 13-10-2005 à 09:52:59  profilanswer
 

Donc finalement, on utilisera, que ce soit sous IE ou sous le reste :

document.getElementById("pompier_nom" ).innerHTML = message


n°1221983
oximore
A chacun ses oreilles...
Posté le 13-10-2005 à 12:27:11  profilanswer
 

Tien tiens,
 
De fait, j’ai essayé ma technique avec ta page, mais ça ne donne rien.
Pourtant j’en ai où cela marche très bien.
En fait, il y a une différence et c’est peut-être pour cela :
Je fais une réinitialisation d’un formulaire manuellement, j’entends par là que je simule un bouton ‘reset’.  
Dans les différents champs de mon formulaire, il y a un champ ‘function’ et comme c’est un mot spécial, la commande  

Code :
  1. document.formulaire.function.value

créait des problèmes. Je suis donc passé par

Code :
  1. document.getElementById(‘function’).value = ‘’ ;

et cela marche très bien.
 
J’imagine que cela vient du fait que c’est un champ d’un formulaire.
Sinon, le

Code :
  1. innerHTML

fonctionne très bien.
 
A+
Oximore

n°1222077
FlorentG
Unité de Masse
Posté le 13-10-2005 à 13:46:46  profilanswer
 

oximore a écrit :

Code :
  1. document.formulaire.function.value

créait des problèmes.


Ca c'est l'ancienne méthode en fait... Qui n'existe pas dans le DOM...
 

oximore a écrit :

J’imagine que cela vient du fait que c’est un champ d’un formulaire.


Voilà, les éléments de type input ont une propriété "value"...

n°1222811
seb306bzh
Posté le 14-10-2005 à 10:31:26  profilanswer
 

Merci FlorentG ça fonctionne nikel :)
 
merci à toi aussi oximore ;)
 
A+


---------------
merci http://forum.hardware.fr !!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Accès et modification d'un élément de ma page (DOM)

 

Sujets relatifs
Pb reconnaissance <div> sous FF (mise en page formulaire IE/FF)Problème LWP : impossible de télécharger la page
Exécuter une page extérieur dans un Crontab ?mon 1er script php, mot de passe sur page web ; comment faire?
PhpBB et page de connexionde photoshop à dreamweaver: pb centrage de page
Enregistrer une page en format Wordcss et pied de page
Probleme des pages PUB sur une page persoOuvrir une page php a dans 1 nouvelle page avec START (DOS)
Plus de sujets relatifs à : Accès et modification d'un élément de ma page (DOM)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR