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 :

Comment rafraichir une iFrame a partir d'une autre iFrame ?


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Comment rafraichir une iFrame a partir d'une autre iFrame ?
    Comme le titre l'indique, je cherche un bout de code qui me permette de rafraichir une iFRAME, a partir d'une autre iFRAME.
    En l'occurence, une de mes iFrame contient la liste de mes article et la seconde le panier (site marchand), lorsque j'ajoute un produit, je veux rafraichir l'iFRAME qui contient mon panier.

    Apres de multiple recherche, j'ai tenté
    document.frames["I2"].location.reload(true)
    I2 etant l'iFRAME que je veux rafraichir, mais sans succés !

    Si quelqu'un a une idée ou une piste ... je suis preneur.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.frames['nomiframe']

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Le probleme est que si j'utilise la propriete onClick de mon iframe1 pour executer le code, c'est la frame en cours (soit l'iFrame1) qui est rafraichie par le contenu de mon iFrame2, et non l'iFrame2.
    Suis je clair ?

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    As-tu essayé avec target="iframe_cible" ?

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Madfrix
    As-tu essayé avec target="iframe_cible" ?
    Excuse moi, mais je ne vois pas ou utilisé target="iframe_cible" dans ma commande Javascript ? Peux tu preciser le fond de ta pensée ?

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Excuse-moi j'avais mal compris le fond de ton problème.
    Mais si tu veux reload ta frame à partir d'une autre, pourquoi ne pas directement rappeler l'URL ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    parent.frames["I2"].location.href = "ton_URL";

    Sinon pour reload directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    parent.frames["I2"].location.reload();
    Cela devrait marcher, non ?

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    j'obtiens une erreur document.frames has no properties quand j'utilse :
    document.frames["I3"].location.reload(); (I3 etant le nom de mon iframe que je veux rafraichir)
    d'ou vient ma boulette ???

  8. #8
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Excuse moi à nouveau

    J'ai corrigé mon erreur ce n'est pas document mais parent qu'il faut mettre

  9. #9
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    j'avais corrigé, par contre c'est ma iFrame appelante qui est rafraichie !!!

  10. #10
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Es-tu sûr de tes ids de iframes ? (ce code est bon je l'ai expérimenté)

  11. #11
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Je vais reverifier tous mes sources ... en attendant je te remercie.

    Je reprend le job plus tard ...

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Salut, je débute en javascript mais je voit à peut près ce que tu veut faire,
    et je pense que ce serait carrément mieu avec des calques (<div>) que les iframe vraiment très oldschool.

    Je croit que j'avait choppé un script simpa pour frair ça à cette adresse :

    http://www.dhtmlgoodies.com/index.ht...ynamic-content

    Je pense que ça colle avec ce que tu veut faire.. corrige moi si je me trompe.

    ++

  13. #13
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Je reviens a l'attaque, apres avoir verifier mes ID, tous semble OK, pourtant c'est bien ma premier iFrame qui recoit le rafraichissement.
    Je vais reprendre mes explication, car je me suis peut etre mal exprimé. Sur une page j'ai deux iFrame I2(les produits) et I3(le panier), lorsque j'ajoute un produit dans mon panier, un script sur l'evenement onclick de I2 est censé me rafraichir I3(le panier). Actuellement en utilisant parent.... c'est I2 qui est rafraichit, et ce avec le panier !!! Bref j'en perd mon latin.

  14. #14
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Salut, je viens de bricoler un script qui marche et qui fait ce que tu veux faire (enfin je l'espère !!!).

    La page principale est test.html. Elle comprend deux iframes I2 et I3 dans lesquelles sont chargées respectivement les pages IF2.html et IF3.html :

    Page test.html :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <html>
     
    <head>
     
    <style>
     
    #iframe1{position:absolute; border:solid black 1 px; top:100px; left:100px; width:300px; height:300px;}
    #iframe2{position:absolute; border:solid black 1 px; top:100px; left:500px; width:300px; height:300px;}
     
    </style>
     
    </head>
     
    <body>
     
     
    <div id="iframe1">
    	<iframe name=I2 width=100% height=100% src="./IF2.html">
    	</iframe>
    </div>
     
     
     
    <div id="iframe2">
    	<iframe name=I3 width=100% height=100% src="./IF3.html">
    	</iframe>
    </div>
     
     
     
    </body>
     
    </html>
    Page IF2.html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <html>
     
    <body>
     
     
    <input type="button" onclick="parent.frames['I3'].location.reload();" value="Rafraîchir I3">
     
     
    </body>
     
     
    </html>
    Page IF3.html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <html>
     
    <body>
     
     
    contenu de IF3 qui sera rechargé
     
     
    </body>
     
    </html>

    En cliquant sur le bouton "rafraîchir I3", ton iframe I3 sera rechargée. Inspire toi de ce script pour corriger tes erreurs.


    J'espère que cela t'as aidé

  15. #15
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Madfrix
    Salut, je viens de bricoler un script qui marche et qui fait ce que tu veux faire (enfin je l'espère !!!).

    La page principale est test.html. Elle comprend deux iframes I2 et I3 dans lesquelles sont chargées respectivement les pages IF2.html et IF3.html :

    Page test.html :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <html>
     
    <head>
     
    <style>
     
    #iframe1{position:absolute; border:solid black 1 px; top:100px; left:100px; width:300px; height:300px;}
    #iframe2{position:absolute; border:solid black 1 px; top:100px; left:500px; width:300px; height:300px;}
     
    </style>
     
    </head>
     
    <body>
     
     
    <div id="iframe1">
    	<iframe name=I2 width=100% height=100% src="./IF2.html">
    	</iframe>
    </div>
     
     
     
    <div id="iframe2">
    	<iframe name=I3 width=100% height=100% src="./IF3.html">
    	</iframe>
    </div>
     
     
     
    </body>
     
    </html>
    Page IF2.html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <html>
     
    <body>
     
     
    <input type="button" onclick="parent.frames['I3'].location.reload();" value="Rafraîchir I3">
     
     
    </body>
     
     
    </html>
    Page IF3.html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <html>
     
    <body>
     
     
    contenu de IF3 qui sera rechargé
     
     
    </body>
     
    </html>

    En cliquant sur le bouton "rafraîchir I3", ton iframe I3 sera rechargée. Inspire toi de ce script pour corriger tes erreurs.


    J'espère que cela t'as aidé
    Effectivement le code est correct, et je pense avoir trouvé d'ou vient mon bug. En effet mon iFrame I2 fait reference a une page PHP qui elle meme fait un traitement via une autre page PHP. Or j'effectue le traitement sur le onClick de cette derniere page, donc "parent" ne convient pas, il faut que je puisse faire reference a ma page initiale. Et la je seche !

  16. #16
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Salut, as tu essayé à tout hasard de mettre 2 parent ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    parent.parent.frames['I3'].location.reload();"

  17. #17
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci pour toutes vos solutions, j'ai repris mon source, et je l'ai simplifié. Du coup, mes deux iFrame ont été fusionnées ...fin du probleme.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  2. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  3. Comment extraire le mois à partir d'une date?
    Par toumoham dans le forum Paradox
    Réponses: 1
    Dernier message: 17/05/2006, 13h37
  4. Réponses: 2
    Dernier message: 03/02/2006, 16h21
  5. [C#] Comment lancer un .doc à partir d'une WebForm ?
    Par patlemagnifik dans le forum ASP.NET
    Réponses: 10
    Dernier message: 06/01/2006, 23h38

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