IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Redirection dans une iframe


Sujet :

JavaScript

  1. #1
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut Redirection dans une iframe
    Bonsoir,

    Mon site comporte une iframe dans lequel est appel� des pages du style http://www.mes-instants-gourmands.com/fiche.php?id=1 � partir du menu de mon index.

    Si ma page http://www.mes-instants-gourmands.com/fiche.php?id=1 est appel� directement depuis le client j'ai mis une redirection qui la renvoie vers l'index :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <SCRIPT LANGUAGE="JavaScript">
    if (parent.frames.length < 1)
    	{
    	document.location.href = 'http://www.mes-instants-gourmands.com/index.php';
    	}
    </SCRIPT>
    Mais du coup je me retrouve avec la page d'accueil qui s'affiche dans l'iframe et non la page initialement demand�e.

    Comment puis-je faire pour que ma fiche se redirige vers l'index et se r�ouvre dans la frame ?
    Tout �a pour que le visiteur ait acc�s au menu et autres fonctions de mon site

    J'esp�re avoir �t� clair

    Merci

    Garg

  2. #2
    Membre �m�rite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    D�tails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par d�faut
    Ca devrait aller mieux ainsi :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    parent.document.location.href = 'http://www.mes-instants-gourmands.com/index.php';
    Mais j'avoue ne pas avoir tout saisi

  3. #3
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    Merci,

    mais �a n'a pas r�solu mon probl�me.

    Pour �tre plus clair, je veux que ma page http://www.mes-instants-gourmands.com/fiche?id=18 quand elle est appel� directement s'ouvre dans la frame pr�vu � cet effet de mon index.

  4. #4
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    J'ai trouv� ce script :

    Dans mon index :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script language="javascript">
    var page = "accueil.php";	// page par défaut chargée dans l'iframe
    var req = window.location.search ;
    if (req) {
    	req=req.substring(1) ;
    	req = unescape(req) ;
        eval(req);
    }
     
    function Iframe_url() {
    	window.document.frames['central'].location=page;
    }
    </script>

    Dans la page qui s'affiche par d�faut dans la frame :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <script Language="javascript">
    req="page='accueil.php';";
    req = escape(req);
    if (parent.frames.length==0) window.location.href="index.php?" + req;
    </script>
    Et enfin dans ma page qui est appel� directement
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <script Language="javascript">
    req="page='fiche.php?';";
    req = escape(req);
    if (parent.frames.length==0) window.location.href="index.php?" + req;
    </script>
    Ma page se recharge bien l� o� il faut mais du coup je "perds" ma variable id
    Comment puis je faire pour �viter cela ???

    Je la r�cup�rais comme cel� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <?php
    $id=$_GET['id'];
    $reponse=mysql_query("SELECT * FROM fiche WHERE id='$id'") or die (mysql_error());
    $donnees=mysql_fetch_array($reponse);

  5. #5
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Salut,
    Citation Envoy� par Biglo
    Ca devrait aller mieux ainsi :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    parent.document.location.href = 'http://www.mes-instants-gourmands.com/index.php';
    Mais j'avoue ne pas avoir tout saisi
    Je ne suis pas du tout convaincu car si on arrive directement sur la page, il n'existe pas de "parent" ! Pour moi, "document" �tait tr�s bien.

    J'ai rencontr� ce pb une fois quand j'utilisais encore des frames et qu'on acc�dait � la page directement depuis google. Mais j'ai tout vir� parce que les frames c'est "Paaaaaas bbiiiiieeeeeennnn" et que si on utilise du SSI ou des includes en php et du CSS, on obtient des bani�res, menus et pieds de page tr�s l�gers et faciles � modifier.

    Enfin, bref, ma solution �tait, en cas de redirection, de fournir directement en param�tre � ma page index, le nom de la page en cours.

    exemple : tu arrives directement sur fiche.php, donc t'as pas le menu puisqu'il est dans le "parent" (d'o� l'int�ret de ne pas utiliser de frame)
    => tu redirige vers index et tu fournis en GET, le nom de la page � afficher (fiche.php)
    Dans le style
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    if (parent.frames.length < 1)
    	{
    	document.location.href = 'http://www.mes-instants-gourmands.com/index.php?page=' + [nom de la page en cours]; 
           //ici [nom de la page en cours] devra être récupérée et sera égale à "fiche.php?id=1"
    	}
    Sur ta page "index", tu regarde s'il existe une variable "page" dans le GET. Si' oui, c'est une redirection et tu recharge ton iframe avec la bonne page
    Si les caract�res "?" et "&" posent pb (certainement d'ailleurs), tu les remplace avant de les envoyer � index qui le remettra en place.
    par ex "?" deviendra "$" et "&" deviendra "!"
    Ainsi ta redirection envoie "index.php?page=fiche.php$id=1!id2=5..."

    index d�tecte qu'il faut recharger la page fournie plutot que accueil, remplace les caract�res pour obtenir
    page = "fiche.php?id=1&id2=5";
    et remplace la page de l'iframe
    iframe.location.href = page;


  6. #6
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Bon, voici le code quasi complet (j'ai pas trait� les probl�mes de caract�re autres que ceux ennonc�s plus haut)
    Met ce bout de code dans une librairie de code JS. Il sera ainsi appel� de toutes les pages n�cessitant un rechargement sans devoir l'inclure partout.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    // Personellement j'aurais plutot testé l'url de parent car 
    // si ta page est appelée depuis un site qui affiche dans une frame (comme la recherche d'images de Google), c'est raté
    if (parent.frames.length < 1)
    {
         // Récupération du chemin de la page et de ses paramètres
         Chemin = window.location.pathname;
         Param =  window.location.search;
     
         //Remplacement des caractères
         Param.replace("?", "$");
         Param.replace("&", "!");
     
         // Construction du chemin complet
         UrlPage = Chemin + Param;
     
         //Redirection
         document.location.href = 'http://www.mes-instants-gourmands.com/index.php?page=' + UrlPage;
    }
    Dans index uniquement :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Si "search" n'est pas vide c'est que l'on vient d'une redirection
    if(window.location.search <> "")
    {
         Redir = window.location.search;
         // Nettoyage
         Redir.replace("?page=", "");
         Redir.replace("$", "?");
         Redir.replace("!", "&");
     
         // Modif de l'iframe (syntaxe approximative)
         document.MonIFrame.location.href = Redi;
    }
    On doit pouvoir optimiser les remplacement par des expressions r�guli�res mais je ne les maitrise pas bien en php et encore moins en Javascript.


  7. #7
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    Merci pour ton temps !

    Mais l� je t'avoue que je gal�re .... j'ai donc supprim� le code que j'avais mis en place avant

    J'ai donc cr�er un fichier redi.js que j'ai mis � la racine de mon site

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    if (parent.frames.length < 1)
    {
         // Récupération du chemin de la page et de ses paramètres
         Chemin = window.location.pathname;
         Param =  window.location.search;
     
         //Remplacement des caractères
         Param.replace("?", "$");
         Param.replace("&", "!");
     
         // Construction du chemin complet
         UrlPage = Chemin + Param;
     
         //Redirection
         document.location.href = 'http://www.mes-instants-gourmands.com/index.php?page=' + UrlPage;
    }
    Puis dans mon index j'ai mis

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script language="javascript">
    // Si "search" n'est pas vide c'est que l'on vient d'une redirection
    if(window.location.search <> "")
    {
         Redir = window.location.search;
         // Nettoyage
         Redir.replace("?page=", "");
         Redir.replace("$", "?");
         Redir.replace("!", "&");
     
         // Modif de l'iframe (syntaxe approximative)
         document.MonIframe.location.href = Redi;
    }
    </script>
    Dans la derni�re ligne MonIframe correspond au nom de celle-ci .
    Ex : central, ?

    Je reviens � chaque fois sur l'index avec ma page d'accueil et pas la fiche demand�

    Edit : j'ai cette adresse qui s'affiche dans la barre d'ie


  8. #8
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Salut,

    En fait, je n'ai jamais utilis� d'Iframe, donc je ne sais pas comment les manipuler mais je suppose que c'est come des frame standard.

    Il faut que tu mettes la m�me instruction que lorsque tu modifies le contenu de ton Iframe depuis un lien de ton menu

  9. #9
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    En l'occurence

    c'est <a href="fiche.php?id=222" target="central">

    donc ca devrait �tre

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.central.location.href = Redi;
    ?

  10. #10
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Attends, tu utilises un Iframe ou un frameset classique ?
    Dans le 2eme cas fais p�ter le frameset

  11. #11
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    une iframe et j'ai essay� �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     // Modif de l'iframe (syntaxe approximative)
         document.frames['central'].location.href = Redi;
    mais toujours pas

  12. #12
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Ca commence � me revenir. Effectivement c'est plutot quelque chose de ce genre.
    Pour tes essais, tu peux aussi cr�er un simple lien
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="Javascript:document.frames['central'].location.href = Redi;"...>
    En fixant une valeur � Redi en Js sur la m�me page.

    Quand j'utilisais un frameset local, il fallait que je "remonte" dans ma structure de frame pour, ensuite, redescendre dans la frame concern�e.

    Dans ton cas, le Iframe est plutot comme un div, non ?

  13. #13
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    Oui
    voici le code de l'iframe

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
      <td width="549" rowspan="5" valign="top"><iframe src="accueil.php" name="central" width="100%" marginwidth="3" height="100%" marginheight="3" style="border-style:groove" align="middle" scrolling="auto" frameborder="0"></iframe>
    j'ai plac� le script entre les balises <head> c'est bien l� ?

  14. #14
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Citation Envoy� par GarGamel55
    j'ai plac� le script entre les balises <head> c'est bien l� ?
    Par exemple mais faudrait lancer le code apr�s le chargement de la page ou, du moins, apr�s les ligne de cr�ation de l'iframe. Sinon le code ne peut modifier un �l�ment qui n'existe pas encore.

    J'ai fait des recherches sur les iframes pour savoir comment les utiliser.
    Bref j'ai r�ussi � modifier le contenu avec ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById('MonIframe').src = Redi;
    Cela implique d'ajouter un id � l'iframe

  15. #15
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    Merci encore pour ton travail ..

    J'ai donn� � l'iframe l'id "central", j'ai plac� le script apr�s ma balise </iframe>

    enfin j'ai remplac� la derniere du ligne du code par

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById('central').src = Redi;
    Mais c'est toujours ma page accueil qui se charge.

    Y aurait t il pas un code � mettre dans ma page accueil pour lui de se charger uniquement par d�faut ?

  16. #16
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Ta page est en ligne ?

  17. #17
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154

  18. #18
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Je remarque 2 choses :

    1 - L'URL qui est reconstruite contient des caract�res qui ne devraient pas y �tre :

    http://www.mes-instants-gourmands.com/index.php?page=/fiche.php?id=229

    2 - L'id que tu as mis sur ton iframe est "central " (y a un espace de trop)

  19. #19
    Membre confirm� Avatar de Ricou13
    Inscrit en
    Ao�t 2002
    Messages
    292
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 292
    Par d�faut
    Dans le javascript de redirection (redi.js), tu peux ajouterjuste avant la redirection ?

  20. #20
    Membre confirm� Avatar de GarGamel55
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 154
    Par d�faut
    j'ai corrig� l'id de l'iframe,

    J'ai mis alert(UrlPage); dans la fichier redi

    je ne trouve toujours pas !!

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. [HTML] affichage du contenu des balises 'alt' dans une iframe
    Par etarip dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 6
    Dernier message: 11/08/2005, 14h08
  2. [iframe]pb d'affichage dans une iframe
    Par Destampy dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 01/06/2005, 14h55
  3. [ifrmaes]Charger une page dans une iframe
    Par Destampy dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 25/05/2005, 15h54
  4. [C#] Redirection depuis une Iframe
    Par Dozer71 dans le forum ASP.NET
    R�ponses: 2
    Dernier message: 24/05/2005, 10h36
  5. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 28/04/2005, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo