11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour

j'appelle dans une balise object une page qui contient des input.

Est-ce que c'est possible d'accéder à ces input afin des les pré-remplir ?

Merci
document.form[0].getElementById("id_de_mon_input").value = "valeur du champ";

ou avec jQuery :

$(id_de_mon_input).val("valeur du champ");


Si cette valeur est toujours identique pas besoin de javascript, tu peux très bien le faire en html dans le formulaire :
<input name="mon_input" id="mon_input" value="valeur du champ" />
Je n'ai pas la possibilité de modifier la page que j'appelle dans la balise <object>

Un exemple concret :

Ma page :

<body>
	<object type="text/html" data="http://www.toxikplanet.com/test/formulaire.htm" width="700px" height="500px"></object>
</body>


La page que je ne peux pas modifier contient ces balises input


<input name="nom" type="text" id="nom">
<input name="prenom" type="text" id="prenom" size="5">


Et je n'arrive pas à les modifier car getElementById("nom") n'accède pas à l'élément
J'ai jamais rencontré ce cas de figure.
Je pense que le problème vient du fait qu'il faudrait cibler la balise object avant input enfant.

Par contre je ne suis pas sur que le DOM soit construit pour le contenu inséré par la balise object, du coup ça rendrait la tache impossible. Smiley confus
A y regarder avec Firebug, il semblerait en effet que le DOM du contenu de la balise object n'est pas construit.

En revanche, pourquoi n'utilises-tu pas plutôt la fonction include de PHP pour insérer ton formulaire ? Ta page serait ainsi assemblée côté serveur et le DOM construit intégralement côté client. Tu devrais alors pouvoir atteindre ton input avec Javascript.
Parce que include ne permet d'accèder à des pages qui sont sur le même serveur.

Hors comme dit plus haut, la page que je dois appeler et sur un autre serveur qui ne m'appartient pas.

C'est un formulaire de paiement que je veux pré-remplir, et je ne peux pas non plus recopier le code du formulaire car qu'on on le valide le script détecte que l'url de référence n'est pas la bonne.

Et le fournisseur de ce formulaire ne permet pas de pré-remplir les champs.

La seule possibilité à laquelle j'ai pensé était en utilisant un code javascript.
a écrit :
Parce que include ne permet d'accèder à des pages qui sont sur le même serveur.

???
quand tu dis accéder c'est modifier ?
Là tu es con,fronté à un double souci, celui d'acceder aux elements d'une pas inserer dans une balise object, et celui d'acceder à des elements d'une page qui n'est pas sur ton domaine( crossbrowser security)

je ne vois qu'une solution coté serveur pour arriver à tes fins ...