Javascript et Frame (débutant)

Misdrhaal Messages postés 49 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 23 février 2006 - 9 mai 2005 à 16:59
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 - 20 août 2005 à 16:51
Bonjour,

je vous expose rapidement le contexte :
J'ai un fichier txt contenant des coordonnées, je le traite une fois en php qui m'affiche alors des calques aux différentes coordonnées.
Le but est de pouvoir faire un zoom sur ces calques pour les espacer dans le cas de calques très groupés.

La solution retenue est la suivante:
un clic gauche de souris dans la fenetre centre les calques autour du point défini par les coordonnées de la souris (donc changement de repère et donc déplacement des calques dans la fenêtre)
ca je suis arrivé à le faire (non sans mal)

ensuite pour zoomer et bien j'ai placé mes outils de zoom dans une petite frame en bas et le but va etre de pouvoir agir sur les calques (frame du haut) à partir de la frame du bas

Avant d'entrer dans ces fonctions j'ai voulu voir si je pouvais faire communiquer deux frames entre elles.
Voici le code de la fenetre contenant les frames :

<html>
<head>
<title>Similarity plot</title>
</head>
<frameset rows="89%,*">
<frame src="acp_plot_php.htm" name="acp_plot" frameborder="no" noresize>
<frame src="acp_info.htm" name="acp_info" frameborder="no" noresize>
</frameset>
</html>

Voila le code javascript que j'insère dans la frame du bas("acp_info")

<head>
<script language=javascript>
var xfen;
if(parent.acp_plot) //Je regarde si je rentre bien dans la fenetre
{
alert("bien entré")
xfen=parent.acp_plot.name;
alert(xfen);
}
</script>
</head>
C'est juste pour voir si j'arrive a entrer dans la frame acp_plot et que je peux accéder à ses propriétés. La réponse est : oui je peux entrer mais je n'arrive même pas à avoir le nom de la frame, ni me placer dans le document... bref je ne peux rien faire sinon détecter parent.acp_plot.

Si j'applique ce meme code , toujours dans la frame acp_info, mais que je teste la frame acp_info, alors je detecte acp_info, je peux récupérer son nom etc.

Et le problème est le même si à partir d'acp_plot, j'essaye de détecter acp_plot(marche) mais je ne peux obtenir les propriétés de l'autre frame(acp_info).

Donc je me suis dit que parent n'était pas l'objet adéquat, qu'il manquait peut etre une hiérarchie, donc j'ai tout mis :
window <=frame actuelle
top <= on remonte dans la fenetre principale
parent <= on va dans le frameset(si j'ai bien compris)
nomframe<= frame du frameset
ce qui m'a donné des tests avec window.top.parent.acp_plot, et window.top.parent.acp_info

J'ai exactement les mêmes problèmes donc si vous savez pourquoi et avez une solution, j'ouvre grand les oreilles^^
Merci d'avance pour vos réponses

4 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
10 mai 2005 à 03:24
Salut!

J'avais des doutes et j'ai essayé en essayant ton frameset en en créant deux page html, et j'ai bien réussi a avoir le nom de la frame en fesant : parent.acp_plot.name

La seul chose que je vois qui pourrait causer ceci, c'est que les deux pages ne soit pas sur le même serveur ou que du code inseré pas un hébergeur gratuit causerais ces problèmes.

A+, Ghislain
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
20 août 2005 à 10:45
"La seul chose que je vois qui pourrait causer ceci, c'est que les deux pages ne soit pas sur le même serveur"

Bonjour,

Je suis débutant en javascript et j'apprend les frames...j'ai cherché sur le net des infos et je crois que ta remarque (cité entre guillemets) montre bien mon problême! En fait, j'ai une window qui contient 2frames. L'une des frames est "locale" et l'autre est un site internet (qui ne m'appartient pas). J'ai essayé (en priant loll) de récupérer des infos à l'aide de mon systême de frames, sans succès! Y a til un moyen de passer outre ce souci?

Merci d'avance!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
20 août 2005 à 16:37
Salut!

Je ne crois pas que ce soit possible a partir de javascript d'extraire les info. d'une page qui ne t'appartient pas.

A+ Ghislain
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
20 août 2005 à 16:51
Oui mais avoue que c'est bête! Par exemple pour afficher les cookies qu'un site écrit sur ton PC, tu peux à tout moment utiliser la barre d'adresse et faire (même si c'est pas une page locale!!) :


javascript:alert(document.cookie);


Alors pourquoi quand on passe par des frames, l'accès est-il refusé alors que le résultat en serait le même?

alert(parent.fenfant.document.cookie); // marche pô ! :(

C'est assez bizarre...
Euh d'ailleurs je viens de me rappeller un truc...le logiciel Power IE que j'ai téléchargé me permet de voir les cookies en rajoutant une entrée au menu contextuel de IE...me souviens vaguement avoir trouvé une fois des astuces interessantes dans le code....je vais essayer de le retrouver, de le comprendre, et si j'arrive à en tirer quelque chose, je posterais ma découverte

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0
Rejoignez-nous