Récupération de l'url d'une iframe en js

Résolu
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007 - 17 oct. 2007 à 11:09
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007 - 25 oct. 2007 à 15:05
bonjour, je débute en js et jai la problématique suivante :

une page html simple contient un formulaire d'une part et une iframe d'autre part.
Lorsque l'on navigue dans l'iframe, je souhaite que l'adresse s'affiche dans le formulaire de la page html. ainsi lorsque l'on clique sur un lien dans l'iframe, celui se retrouve mis à jour dans le champ text de mon formulaire...

voila pr le moment mes tentatives sont restées vaines :/ aussi j'attends vos propositions éclairées
merci :]

25 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
22 oct. 2007 à 19:51
Bonjour,
Cela est moins sûr, du moins à ma connaissance, ou alors par du Hack, mais pas simple a mettre en place d'autant que les visiteurs ne l'auront vraisemblablement pas. Ce sont les navigateurs qui restreingnent les infos, à preuve va faire un tour du côté de l'outil Inspecteur DOM de FireFox et tu verras que les infos existent mais ne sont pas accessibles par le javascript.
 
 



;0)
3
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 11:05
personne a sa petite idée..??
c'est réalisable     au moins?
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
18 oct. 2007 à 12:03
Bonjour,
essaies de mettre sur ton iframe l'événement suivant


;0)
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 12:20
j'observe qu'il m'affiche l'url de départ de l'iframe, certes,  Mais lorsque je clique sur un lien contenu dans l'iframe, et après avoir bougé la souris dessus, il m'affiche toujours l'url de la page de départ au lieu de me donner le lien attentu :/

c facheux ^^
j'ai également essayé ceci :
onmouseover="alert(document.getElementById('ifr').contentDocument.location.href);"
sans plus de succès

help! 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 12:22
je repost vu que c tronqué :/



j'observe qu'il m'affiche l'url de départ de l'iframe, certes,  Mais lorsque je clique sur un lien contenu dans l'iframe, et après avoir bougé la souris dessus, il m'affiche toujours l'url de la page de départ au lieu de me donner le lien attentu :/

c facheux ^^
j'ai également essayé ceci :
onmouseover="alert(document.getElementById('ifr')
.contentDocument.location.href);"
sans plus de succès

help! 
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 12:24
raa mais c dingue :x



j'observe qu'il m'affiche l'url de départ de l'iframe,
certes,  Mais lorsque je clique sur un lien contenu
dans l'iframe, et après avoir bougé la souris dessus,
il m'affiche toujours l'url de la page de départ
au lieu de me donner le lien attentu :/

c facheux ^^
j'ai également essayé ceci :
onmouseover="alert(document.getElementById('ifr')
.contentDocument.location.href);"
sans plus de succès

help! 
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
18 oct. 2007 à 17:24
Bonjour,
essaies plutôt avec this.contentWindow.location
...

 





;0)
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 17:55
mmmm hélas non,
en faisant

je n'ai rien qui saffiche, par contre, si je m'arrete avant :

alors ca affiche
hello : [object Windows]
comment connaitre le contenu de 'contentWindows' (clés et valeurs) ou de tout autre élément dont je voudrais connaitre le contenu ?
en tout cas, ça signifie que 'location' ne peut pas etre utilisé comme propriété de 'contentWindow' (en tout cas dans ce cas de figure)
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
18 oct. 2007 à 18:04
ATTENTION
cela ne marche que si les pages sont dans le même domaine, problème de "sécurité" oblige...
Il est d'ailleurs fort possible que tu ais des messages d'erreur dans le debbuger...du type Accés Refusé 
  :0(
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 18:13
mais le code fourni est constitué de 2 affectations...onmouseover document.getElementById('ID_CHAMP').value this.contentWindow.location;"
comment faire pour afficher le contenu de la var ainsi récupérée dans la page principale ?

je rappelle que je débute en js ;)
et comment ça le debbuggeur? il se cache ou celui la? jai 2 mots a lui dire moi ^^

et enfin je crains que cette solution, qd bien mm elle marcherai, ne conviendrai pas puisqu'il me faut a coup sur récupérer l'url de la page visité dans l'iframe pour l'afficher dans la page principale; domaine identique ou pas!

ca me semble bien chaud-time tout ça
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
18 oct. 2007 à 19:03
l'affectation






vaut pour l'iframe


document.getElementById('ID_CHAMP')


correspond au champ que tu veux mettre à jour exemple






pour ce qui concerne le debugger voici The Bultez tableau visible un peu partout sur le Forum





o~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o 
| Avec | et mieux : Télécharger | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|FireFox |regarder la "console d'erreurs" | FireBug
| | Outils / Console d'erreurs | | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|Internet |utils/options Ile Debogger IE | 
| Explorer| dans la liste, sous "Navigation" : décocher | | 
| | ° Afficher notification erreur script | | 
| | ° Désactiver le débogage autres applications| | 
| | ° Désactiver le débogage Internet Explorer | | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|K-Meleon |regarder la "console d'erreurs" | | 
| | Outils / Console d'erreurs | | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|Opera |regarder la "console d'erreurs" | | 
| | utils / Asole d'erreurs | | 
o~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o







je rajoutes avec SAFARI menu Debug -> Show JavaScript Console,
qui lui, ceci dit en passant, accédera si tu es hors domaine, la sécurité des un n'est pas celle des autres
encore merci à




The Bultez


pour son tableau.



 



;0)
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 20:09
merci pr ces précieux conseils ;)

en testant l'iframe et l'input comme indiqué, rien ne se passe dans le champ de mon formulaire et le débbuggeur me gratifie d'un
Erreur : uncaught exception: [Exception... "Could not convert JavaScript argument"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: http://m4rc.info/index2.html :: onmouseover :: line 1"  data: no]
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
18 oct. 2007 à 20:18
OULALA
erreur dans ma saisie


"document.getElementById('ID_CHAMP').value = this.contentWindow.location;">



il manquait un "
la preuve qu'un debbuger sert à quelque chose, encore qu'il est vrai que l'interprétation est des fois hardue !
 
 

;0)
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
18 oct. 2007 à 20:22
hélas je te coupe dans ton élan, c'est tout spontanément que j'ai corrigé cela dans mon code mais c'est bien ainsi que j'ai obtenu la dite erreur :-(
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
19 oct. 2007 à 11:52
le code fonctionne bien tant qu'on reste sur le même domaine effectivement, mais dès qu'on suit un lien exterieur au domaine, le script ne renouvelle plus le champ input de mon formulaire et affiche l'erreur citée plus haut dans le débbugeur.
c'est très frustrant car je cherche a obtenir ce résultat mais dans les 2 cas de figure, avec l'iframe sur le domaine comme sur tout autre domaine.
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 oct. 2007 à 12:24
Bonjour,

    je m'insère dans la discution,
    si c'est depuis un autre domaine, à part afficher une page,
       ça va être difficile de faire autre chose ( en javascript )

    et merci à PetoleTeam qui m'a mis sur le bonne voie pour Safari !
                                                                           
o~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o 
| Avec | et mieux : Télécharger | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|FireFox |regarder la "console d'erreurs" | FireBug
| | Outils / Console d'erreurs | | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|Internet |utils/options Ile Debogger IE | 
| Explorer| dans la liste, sous "Navigation" : décocher | | 
| | ° Afficher notification erreur script | | 
| | ° Désactiver le débogage autres applications| | 
| | ° Désactiver le débogage Internet Explorer | | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|K-Meleon |regarder la "console d'erreurs" | | 
| | Outils / Console d'erreurs | | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|Opera |regarder la "console d'erreurs" | | 
| | utils / Asole d'erreurs | | 
|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|Safari | modifier le fichier "Preferences.plist" | | 
| | ?:\Documents and Settings\"utilisateur"\ | | 
| | Application Data\Apple Computer\Safari | | 
| | en ajoutant <key>IncludeDebugMenu</key> | | 
| | <true/> | | 
| | Regarder Debug / Show JavaScript Console | | 
o~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o
 
                                                                           

   
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]<hr />
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
19 oct. 2007 à 13:11
il s'agit de récupérer l'url de la page visité dans une iframe comme indiqué par petole mais qui fonctionnerai aussi dans le cas ou la page visitée dans l'iframe n'est pas sur le même domaine que la page principale
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 oct. 2007 à 13:47
je me cite :


si c'est depuis un autre domaine, à part afficher une page,
       ça va être difficile de faire autre chose (en javascript )


je n'ose pas dire que c'est impossible !
                                on est ( enfin !  je suis ! ) parfois/souvent surpris,
mais dans un iframe ( ou autre ! ) pointant vers un autre domaine,
à priori  ( ? ) ... on ne peut pas "gérer" quoi que ce soit, pour de
sombres histoires de sécurité (sic)



<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
<hr />
0
m42k Messages postés 16 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 25 octobre 2007
19 oct. 2007 à 13:59
c'est bien ce que je craignais,  ce n'est pas réalisable
j'imagine que le problème est le même avec un jeu de frames classiques ?

vous voyez une autre solution que le javascript vers laquelle m'orienter pour atteindre ce but ?
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 oct. 2007 à 14:29
>>ce n'est pas réalisable
    pas sûr, je n'affirme rien, ayant trop souvent été démenti
         ou ayant trouvé une réponse... après/plus tard !   ;o)



>>le problème est le même avec un jeu de frames


    frame ou iframe c'est quasi la même chose.

>>une autre solution que le javascript
    __ dans un navigateur ? dur, dur... je crois ( ! )
        ActiveX... à développer, dans un autre langage :
            asm
, visual basic
, c[++],  fbsl ... ou autres langages
            que les développeurs me pardonnent mes oublis !
        je ne dis pas exclusif IE, mais difficile avec d'autres navigateurs,
            voire impossible pour certains .
    __ développer un "navigateur" spécifique
    __ ...

    __ est-ce que ça vaut le coup ?

    __ mais on ne pense pas à tout ! ne prend pas ce que je dis
         pour une vérité absolue ! ça veut uniquement dire,
         qu'actuellement, en javascript, je ne sais pas faire, et/ou
         que je ne raisonne  pas comme il faut.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]<hr />
0
Rejoignez-nous