[JavaScript] : reference a une cellule d'un tableau d'une autre frame

: reference a une cellule d'un tableau d'une autre frame [JavaScript] - Programmation

Marsh Posté le 03-05-2001 à 10:41:06    

Je cherche a changer la couleur de fond d'une cellule d'un tableau lorsque l'on clique sur un lien.
j'ai la fonction suivante :

Code :
  1. function changeCouleur(id,couleur)
  2. {
  3.     if (navigator.appName == "Netscape" )
  4.  {
  5.      top.document[id].bgColor = couleur;   
  6.  }
  7.  else
  8.  {
  9.         top.document.all[id].bgColor = couleur;
  10.  }
  11. }


 
mais ça marche pas, car il me dis que 'document.all[...]' n'est pas un objet.
voila le code au niveau du tableau :
<tr>
      <td id="menuGauche" >
....
 
 
puis voila le lien qui devrait changer la couleur :
<a href="javascript:changeCouleur('menuGauche','#000000');">information </a>
 
mais ça ne marche pas ?

Reply

Marsh Posté le 03-05-2001 à 10:41:06   

Reply

Marsh Posté le 03-05-2001 à 10:47:10    

Sous IE pas besoin de document un simple  

Code :
  1. window.top.eval(id).bgColor


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 03-05-2001 à 10:49:28    

ha  ça y est j'ai trouvé. Bin oais, je faisait pas reference a la frame... pfff le matin c dur pour moi... bref voila ce que ça donne :
function changeCouleur(id,couleur)
{
    if (navigator.appName == "Netscape" )
  {
      top.frames["leftFrame"].document[id].bgColor = couleur;    
  }
  else
  {
         top.frames["leftFrame"].document.all[id].bgColor = couleur;
  }
}
 
par contre, ça ne marche pas sous netscape. Si qqu a une idée SVP ?
 
PS: Merci nabab ! :jap:

Reply

Marsh Posté le 03-05-2001 à 11:08:11    

Heu c vrai que window.top fait reference à ton frameset ... Aie pas encore reveillé par contre pour netscape est ce que ton probleme ne viendrait pas de l'attribut id, sous netscape il faut employer l'attribut name non ??? m'enfin j'aurais essayé  :D  
 
Explication :: <TD id="Object" name="Object"> ....


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 03-05-2001 à 11:18:27    

eh non c pas name ...
sinon, je voudrai savoir comment je dois faire pour ecrire dynamiquement dans une cellule. Ainsi, je veux faire un script qui, a partir d'un nom de frame, d'un ID et d'une variable, ecrive un texte en fonction des valeurs de la variable.
mais pour ecrire je connais que document.write . Or, j'accede a ma cellule en faisant
'top.frames["leftFrame"].document.all[id].' Je dois fait quoi maintenant pour ecrire dedans ? :D

Reply

Marsh Posté le 03-05-2001 à 11:54:19    

innerText ou innerHTML


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 03-05-2001 à 12:11:56    

oui ça c pour IE (d'ailleurs c quoi la diff entre innerText et innerHTML ?), mais pour netscape (oui la bouze), je fais comment ?
heeeeeeelllllllllllllllpppppp
le premier qui me repond je l'aime ! :love:

Reply

Marsh Posté le 03-05-2001 à 12:28:32    

la difference c marqué dessus  :D innerText n'intreprete pas ce que tu inseres dans la cellule a la difference de innerHTML donc si tu mets par exemple "<IMG>..." dans innerText cela marque SPAN mais dans innerHTML cela affiche l'image ....
 
C koi netscape ????


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 03-05-2001 à 12:29:55    

pour netscape , c'est impossible  : l'objet de manipulation d'une cellule n'est pas implementé


---------------
Do androïds dream of electric sheep ?
Reply

Marsh Posté le 03-05-2001 à 14:19:11    

Ha oui et je fais comment moi ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed