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 :

Rafraîchir la page parente à une iframe


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut Rafraîchir la page parente à une iframe
    Bonjour,
    je voudrais connaître le code à insérer dans une iframe pour rafraîchir sa page parente SVP
    merci
    bien cordialement

  2. #2
    Membre confirmé Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 343
    Points : 493
    Points
    493
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.location.reload();

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    ok merci

    et en jQuery comment rafraîchir toutes les iframes d'une certaine classe SVP ?

  4. #4
    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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Essaye un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.classdeliframe').each( function(){ $(this).contentDocument.location.reload();})

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    non ça ne fonctionne pas mais je sais pourquoi, en fait je t'explique le problème car c'est moi qui l'ai mal posé : depuis une iframe je souhaite rafraîchir toutes les autres iframes de la page qui ont la classe "obs", c'est donc depuis une iframe et non depuis la page que je souhaite rafraîchir les iframes

  6. #6
    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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Du coup il faut tentrer de passer par parent ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.parent.$('.classdeliframe').each( function(){ $(this).contentDocument.location.reload();})

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    non on ne peut pas faire de mélange de pur JS et de jQuery j'ai l'erreur suivante :
    Uncaught TypeError: window.parent.$ is not a function

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    ah si pardon c'est juste que l'iframe appelante, les iframes à rafraîchir ainsi que la page principale doivent avoir jQuery
    j'ai maintenant l'erreur suivante :
    Uncaught TypeError: $(...).contentDocument is undefined

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    la dernière erreur était sur firefox sur chrome j'ai :
    add_observation.php:8 Uncaught TypeError: Cannot read properties of undefined (reading 'location')
    at HTMLIFrameElement.<anonymous> (add_observation.php:8:65)
    at Function.each (jquery-1.4.4.min.js:33:46)
    at init.each (jquery-1.4.4.min.js:26:388)
    at add_observation.php:8:26

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 058
    Points : 44 588
    Points
    44 588
    Par défaut
    Bonjour,
    les iframes à rafraîchir ainsi que la page principale doivent avoir jQuery
    je n'en vois pas l'intérêt à priori c'est la logique de communication entre ces différents éléments qui est importante à savoir :

    Dans la page parent, on place la fonction devant être appelée par les <iframe> contenues, par exemple :

    ...on trouve les codes suivant dans la page parentIframe.html
    Code html : 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
    <style>
    iframe {
      display: block;
      margin: .5em 0;
      border: 2px solid #CCC;
    }
    iframe.clicked {
      border: 2px solid #F00;
    }
    </style>
    <script>
    function fctIframeParent() {
      const elementsIframe = document.querySelectorAll("iframe");
      elementsIframe.forEach((iframe) => {
        iframe.classList.toggle("clicked");
      });
    };
    </script>
    ...cette fonction ne fait qu'ajouter/retirer la class clicked à toutes les <iframe> contenues dans la page.

    Elle peut être appelée directement dans celle-ci via un fctIframeParent().

    Pour que cette fonction soit appelée par les iframe enfants, il faut que celles-ci disposent d'une fonction appelant la fonction fctIframeParent de la page parentIframe.html.

    Exemple de page contenu dans une <iframe> :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <button onclick="toggleBorder()">toggleBorder()</button>
    <script>
    function toggleBorder () {
      // récup. parent de l'iframe
      const parentIframe = window.parent.frames;
      // si existe et si fonction existe
      if (parentIframe && parentIframe.fctIframeParent) {
        // exécution de la fonction parent
        parentIframe.fctIframeParent();
      }
    }
    </script>

    Maintenant si tu cliques sur le bouton contenu dans l'<iframe> toutes les <iframe> de la page parentIframe.html auront leurs bordures modifiées.

    Cette fonction sera à mettre dans toutes les pages insérées via les <iframe> pour pouvoir accéder à la fonction fctIframeParent de la page parentIframe.html

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    super ! j'ai adapté le code à mon besoin et ça marche ! merci

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

Discussions similaires

  1. FrameKiller : Pb de chargement de pages dans une iframe
    Par olive_le_malin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 28/05/2009, 15h32
  2. Ouvrir une page dans une Iframe
    Par Akim13 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/10/2008, 15h47
  3. [HTML] Masquer le fond d'une page dans une iframe
    Par koKoTis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 21
    Dernier message: 01/02/2008, 15h07
  4. Ouvrir une page dans une Iframe par js
    Par 10-nice dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/08/2005, 16h24
  5. [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

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