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

Résolu
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007
-
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007
-
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

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

personne a sa petite idée..??
c'est réalisable     au moins?
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour,
essaies de mettre sur ton iframe l'événement suivant


;0)
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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! 
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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! 
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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! 
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour,
essaies plutôt avec this.contentWindow.location
...

 





;0)
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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(
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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]
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
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)
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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 :-(
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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 />
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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 />
Messages postés
16
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
25 octobre 2007

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 ?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>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 />