Page 1 sur 1

Acceder au contenu d'un iframe

Posté : 20 nov. 2007, 20:39
par orgerix
Bonjour, j'ai un léger problème. J'ai un iframe (oui je sais c'est pas bien c'est pas du tout accessible, mais je vois pas comment faire autrement).

J'aimerai accéder au contenu de cet iframe pour faire un traitement et récupérer des donnée. j'ai essayé donc un petit code tout simple

Code : Tout sélectionner

<script language="javascript"> function click() { if(navigator.appName=="Microsoft Internet Explorer") { alert(document.frames["farmee"]); } else if(navigator.appName=="Netscape") { alert(getElementsByTagName("iframe")[0].contentDocument); } } </script> </head> <body> <input type="button" value="cliquez" onclick="click()"/> <iframe src="index.php" id="farme"></iframe>
Le problème, c'est que j'ai l'impression que la fonction n'est pas executée. Quelqu'un pourrait il m'aider ?

Posté : 21 nov. 2007, 17:51
par Ryle
Plusieurs choses qui ne vont pas dans ton code... pour pouvoir appeller une frame par son nom (frames["farmee"]), il lui faut un "nom" et pas seulement un id. Par ailleurs, il faut que les deux correspondent (frames["farmee"] / id="farme")

Maintenant, quitte à lui donner un id unique, autant l'utiliser : document.getElementById('farme') te retourne l'objet à tous les coups, quel que soit le navigateur.

Sinon de manière générale, pour vérifier que ta fonction est exécutée, tu peux coller un alert() dedans (sans structure conditionnelle), tu verras bien s'il est appelé ou non :)

Si tes alert() ne retournent rien, c'est probablement parce que les tests sont tous les deux faux. Fais donc un alert(navigator.appName) dès le début de ta fonction, et vérifie que la valeur affichée est identifque à celles que tu testes... Tu peux aussi ajouter un "else" pour gérer les cas ou tes deux valeurs sont différentes :)

Posté : 21 nov. 2007, 20:04
par orgerix
Merci beaucoup Ryle, décidement j'étais pas trop réveillé...

Et j'ai testé un alert et ca marche pas. Est ce du au fait qu'il y a plusieurs frames et donc plusieurs methodes alert ?

Posté : 21 nov. 2007, 22:05
par Truc
Le nom de la fonction peut être :-k
click() est une méthode IE qui permet de simuler un clic

Posté : 21 nov. 2007, 22:35
par orgerix
C'était ca. Merci Truc. La coloration syntaxique aurait du me mettre la puce à l'oreilel.

Maintenant, j'ai un problème car l'alert me donne comme valeur "null".

Posté : 22 nov. 2007, 22:56
par orgerix
C'est bon, j'ai trouvé, j'ai replacer

Code : Tout sélectionner

document.getElementById('farme').getContent
Par

Code : Tout sélectionner

window.farme['farme'].document
Cependant, comme je veux manipuler des informations sur des domaines différents, je suis bloqué par le navigateur automatiquement. N'y a t il pas possilibité de configurer le navigateur pour que ca marche ?