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 :

Une iframe qui se supprime elle-même


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut Une iframe qui se supprime elle-même
    Bonjour,
    savez-vous si un iframe créé avec la fonction createElement et appendChild, peut se détruire elle-même avec removeChild ?
    Sinon, comment je peux le détruire ?

    Merci

  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
    a priori elle doit pouvoir s'auto détruire ... as tu essayé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe onmouseover="this.parentNode.removeChild(document.getElementsByTagName('iframe')[0])" id="coucou"/>

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Ben j'ai essayé en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var corps=document.getElementsByTagName('body')[0];
    corps.removeChild('fenetre');
    Mais j'ai une erreur sur moz :

    Erreur : uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLBodyElement.removeChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://localhost/projet/page.php :: <TOP_LEVEL> :: line 54" data: no]

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    recupere le parentNode de ta frame et c est sur lui que tu appel le removeChild en lui passant une ref vers ta frame.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fr = document.getElementById('maframe');
    fr.parentNode.removeChild(fr);

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    J'ai essayé différents trucs, mais pas moyen de supprimer l'iframe.
    Du coup, je mis la frame dans un DIV.
    Au moins, j'arrive à le cacher, mais toujours pas à le détruire.

  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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    tu utilises quel navigateur ... because le code que je t'ai filé au dessus fonctionne comme un charme

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Pardon, j'avais pas vu le code que tu as mis.
    Il faut que j'essaie mais comme je crée l'iframe de façon dynamique, faut que je double le code (à cause du gestionnaire d'évènements différent entre IE et MOZ)

  8. #8
    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
    pouquoi donc ?
    getElementsByTagName('iframe') cible bien le bon frame quelque soit le navigateur même si l'iframe est crée dynamiquement ...

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Non, le pb c'est que je crée l'iframe avec un createElement et pour attacher un évènement, c'est différent sous Moz et EI.
    En plus, je suis en train de me dire que je ne veux même pas attacher un évènement sur l'iframe proprement dit, mais sur un bouton qui est dans la page chargée dans l'iframe. Je sais, c'est simple.
    Tout ce que j'arrive à faire, c'est afficher/masquer le div qui contient l'iframe.
    Mon autre pb maintenant, c'est de réussir à préremplir des champs contenus dans la page chargée dans l'iframe contenue dans le DIV !!!

  10. #10
    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
    un setAttribute ou un .evenement ... ça fait juste une ligne en plus par bien grave ...

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Oublies le gestionnaire d'évènements !
    En fait, je veux effectuer cette action sur un clic d'un bouton qui se trouve dans une page php appelée dans l'iframe.

    Si je fais un window.parent, j'atteins bien la fenêtre principale.
    Donc, si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.parent.location.href=window.parent.location.href;
    ça me recharge la page. Etant donné que l'iframe est créée dynamiquement, ça la supprime. Mais ce n'est pas vraiment comme ça que je comptais résoudre le pb.

    Lorsque je fais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var principal=window.parent;     		
    principal.removeChild(document.getElementsByTagName('iframe')[0])
    j'ai l'erreur :
    Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDocument.removeChild]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: http://localhost/projet/save.php :: <TOP_LEVEL> :: line 55" data: no]

    Et si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.removeChild(document.getElementsByTagName('iframe')[0])
    j'ai l'erreur :

    Erreur : this.parentNode has no properties
    Fichier Source : http://localhost/projet/save.php
    Ligne : 56

    Je ne comprends pas d'où vient le pb ?!

  12. #12
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.parent.document.body.removeChild(window.parent.document.getElementById('ifr'));

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Ca marche merci !

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 25/07/2012, 18h56
  2. JFrame qui se superpose à elle-même
    Par Grulf dans le forum Agents de placement/Fenêtres
    Réponses: 37
    Dernier message: 18/06/2008, 16h40
  3. Réponses: 5
    Dernier message: 28/05/2008, 16h18
  4. Bouton qui se supprime lui même ?
    Par akabane dans le forum Delphi
    Réponses: 9
    Dernier message: 14/06/2006, 15h12

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