11548 sujets

JavaScript, DOM et API Web HTML5

Hello,

Je cherche à récupérer dans une page la valeur d'un champ de formulaire, ce formulaire étant contenu dans un iFrame.

Depuis ma page principale, pour récupérer mon iFrame, je fais:

var iFrame = document.getElementById('edit-body___Frame');


Un

alert(iFrame.document);
m'affiche " Smiley object " donc je suppose que jusque la tout va bien.

Par contre, je n'arrive pas a récupérer les infos de mon champ.

J'ai tenté

iFrame.document.getElementById('idDuChamp') 
iFrame.document.idDuChamp
iFrame.document.body.idDuChamp
...


j'ai un "undefined"

Voila le contenu de mon iFrame => http://pastebin.com/522400

Un indice ?

Merci
Modifié par terraces (28 Jan 2006 - 16:18)
Bonjour,
As-tu essayé avec contentDocument ou quelque chose de similaire ?
En outre, certaines configurations ne donnent pas accès à tous les éléments contenus dans des documents en frames et/ou popup.
QuentinC a écrit :
Bonjour,
As-tu essayé avec contentDocument ou quelque chose de similaire ?


Idem, ca donne un "undefined".
Par contre, quand je fais iFrame.location = xxx, ca me change l'url de ma page, et non pas de ma frame. J'ai peut etre mal récupéré celle-ci ?

a écrit :

En outre, certaines configurations ne donnent pas accès à tous les éléments contenus dans des documents en frames et/ou popup.

C'est a dire ? configs de navigateur ?
Il n'y a pas de moyen simple de récupérer le contenu de l'iFrame qui marche sur l'ensemble des navigateurs "récents" ?
En fait, par mesure de sécurité, il se peut que le navigateur interdise la'ccès direct aux variables et objets de l'iframe. Par contre, le fonctions, tu peux y accéder sans problème.

Essaie avec le tableau document.frames au lieu de document.getElementById, tout à coup ça fonctionne mieux...

Réponse au message précédent : window.opener concerne les fenêtres pop-up et non les iframes.
Merci quentin, c'est passé avec document.frames sous IE. Par contre, ça passe avec getElementById sous FF.

Pour récupérer le contenu de mon formulaire, en fait il y avait une nouvelle iFrame.
Bref, j'ai changé le code HTML plutot bancal pluot que de m'embrouiller dans des sous-sous elements.