parent.document.toto vs parent.document.getElementById("toto")

parent.document.toto vs parent.document.getElementById("toto") - HTML/CSS - Programmation

Marsh Posté le 02-03-2005 à 15:33:21    

J'essaie de réapprendre à développer pour améliorer la compatibilité de mes pages.
 
Voici un bout de javascript qui se charge dans une iframe, il a pour but de changer la valeur d'une liste déroulante située sur la page parente.
 
parent.document.form_tache.code_tache_standard.value = 0;
 
Il fonctionne parfaitement dans IE6 et FireFox 1.0
 
Voici maintenant (d'après ce que j'ai compris) la façon dont il devrait désormais être implémenté pour être plus compatible :
 
parent.document.getElementById("code_tache_standard" ).setAttribute("value", "0" );
 
J'ajoute que la liste déroulante ciblée porte les deux tags name="code_tache_standard"  et id="code_tache_standard" comme je l'ai vu conseillé sur plusieurs sites.
 
Problème : Ca marche dans IE6, mais dans FireFox rien ne se passe (aucun message d'erreur, simplement ça ne fonctionne pas).
 
Meucheubeudeu ?  :pt1cable:

Reply

Marsh Posté le 02-03-2005 à 15:33:21   

Reply

Marsh Posté le 02-03-2005 à 15:51:20    

Si tu réapprend, vire l'iframe :D

Reply

Marsh Posté le 07-03-2005 à 09:32:01    

FlorentG a écrit :

Si tu réapprend, vire l'iframe :D


 
Je sais bien que les frames et les iframes sont à proscrire, seulement techniquement je suis coincé. Comment effectuer des actions complexes (mises à jour automatiques de champs, ajout/modif d'enregistrements dans une base de données...) autrement que dans une iframe cachée. Je ne vais pas recharger tout le bazar à chaque fois que l'utilisateur clique sur quelque chose, ça serait un peu lourdingue (les sites qui font ça m'énervent franchement ! Tu cliques, tout se bloque puis la page se recharge et il faut à nouveau scroller jusqu'en bas). C'est bien pratique et puis la norme HTML 4.01 le supporte alors pourquoi se priver.
 
Et puis bon, ça ne répond pas à ma question...

Reply

Marsh Posté le 07-03-2005 à 09:34:04    

Ca dépend. Aurait-tu un lien vers ta page, histoire de voir ? Aussi, target n'est plus supporté en XHTML 1.0 Strict. Ceci parce que le concept de frames/iframes est propre au medias de stype écran. Sur un téléphone portable, ça vaut que dalle :D

Reply

Marsh Posté le 07-03-2005 à 11:07:42    

jroger a écrit :

Je sais bien que les frames et les iframes sont à proscrire, seulement techniquement je suis coincé. Comment effectuer des actions complexes (mises à jour automatiques de champs, ajout/modif d'enregistrements dans une base de données...) autrement que dans une iframe cachée. Je ne vais pas recharger tout le bazar à chaque fois que l'utilisateur clique sur quelque chose, ça serait un peu lourdingue (les sites qui font ça m'énervent franchement ! Tu cliques, tout se bloque puis la page se recharge et il faut à nouveau scroller jusqu'en bas). C'est bien pratique et puis la norme HTML 4.01 le supporte alors pourquoi se priver.
 
Et puis bon, ça ne répond pas à ma question...

Regarde du coté de XMLHTTPRequest ;)
 
cf http://www.toutjavascript.com/savo [...] quest.php3

Reply

Marsh Posté le 07-03-2005 à 11:26:27    

C'est intéressant, merci pour l'info.
 
Le problème (vous allez dire que je ne suis jamais content et vous aurez raison), c'est qu'il faut encore se relancer dans des routines d'identification du navigateur.
 
De plus, le fait d'écrire "ActiveX" dans un script signifie Internet Explorer sous Windows.
 
Tout cela ne va pas dans le sens de la compatibilité (qui est mon but).
 
Je ne dis pas que je m'en servirai pas dans certains cas, mais pour le projet sur lequel je bosse actuellement c'est exclu.

Reply

Marsh Posté le 07-03-2005 à 11:43:16    

Non, pas d'identification de navigateur avec XMLHTTPREquest. Ca marche sous IE, Gecko et Opéra :)

Reply

Marsh Posté le 07-03-2005 à 14:10:55    

Ok alors j'essaie, merci de votre aide.

Reply

Marsh Posté le 07-03-2005 à 14:11:38    

Ok alors j'essaie. Merci de vos conseils.

Reply

Sujets relatifs:

Leave a Replay

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