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 :

[DOM] Pop up


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut [DOM] Pop up
    Bonjour,

    J'ai un petit problème de gestion de pop up :

    Je crée une pop up avec fenetre = window.open(...), j'ai accès au sous objet document de fenetre, mais pas aux méthodes de celui-ci, tel que getElementById(..) qui me renvoie null alors que l'id existe (vérifié par Dom Inspector).

    Voila le code javascript pour plus de détail :
    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
    function OuvrirPopup(page,nom,largeur,hauteur,options){
    // on cherche à positionner la pop-up au centre de l'écran.
      var top=(screen.height-hauteur)/2;
      var left=(screen.width-largeur)/2;
      //on ouvre la pop-up avec les options choisies.
      fenetre = window.open(page,nom,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
      return fenetre;
    }
     
    function Imprimer(page,nom){
    	fenetre = OuvrirPopup(page,nom,document.getElementById("Corps").offsetWidth,document.getElementById("Corps").offsetHeight,"menubar=no, scrollbars=no, statusbar=no, resizable=no");
    //	alert(fenetre.document);//.getElementById("Corps").innerHTML="erf";
    	fenetre.print();
    	fenetre.close();
    //	fenetre.document.getElementById("Corps").style.marginLeft = "Opx";
    }
    Merci d'avance pour votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fenetre.document.getElementById("Corps").style.marginLeft = "Opx";
    Si tu mets un 0 (zéro) au lieu de la lettre "O", ça devrait marcher mieux

    Sinon la syntaxe est bonne, y compris pour les méthodes ...

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    Merci, mais le problème ne viens pas de la en fait, même en remplaçant le fameu "O" par un 0 (mode boulet ^^).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Imprimer(page,nom){
    	fenetre = OuvrirPopup(page,nom,document.getElementById("Corps").offsetWidth,document.getElementById("Corps").offsetHeight,"menubar=no, scrollbars=no, statusbar=no, resizable=no");
    	fenetre.document.getElementById("Corps").style.marginLeft = "0px";
    	fenetre.print();
    	fenetre.close();
    }
    En fait la ligne fenetre.document.getElement... le fait bloquer (erreur classique quand problème avec le javascript) : il continue donc pas pour executer fenetre.print() et fenetre.close() (qui fonctionnent si je retire la ligne problèmatique).

    Je ne comprend vraiment pas ce qui ne va pas.

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    et en déclarant ta variable fenetre dans chacune de tes fonctions ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    Non, ca ne change rien, merci quand même.

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Il faut attendre que ta page soit chargée avant d'accèder aux éléments de ton pop-up !!

    En effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fenetre = window.open("page.htm","","");
    renvoit bien un objet fenêtre... Mais, ta page met un certain temps à ce charger, ce n'est pas instantanné. Donc si tu fais dans une même fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var fenetre, elmt;
    fenetre = window.open("page.htm","","");
    elmt = fenetre.document.getElementById("idElement");
    La fenêtre s'ouvre et ta variable fenêtre contient un objet window. Mais rien ne dit que les éléments contenus dans cette page soient tous chargés lors de l'appel de getElementById()

    Regarde la pièce jointe du script 1 de cette discussion
    J'ouvre la fenêtre fille, puis lorsque la fenêtre fille est chargée (événement onload) je mets une variable de la fenêtre mère à true (cf. fonction charge() du fichier varFilleMere.htm). Et dans ce cas, je peux transférer des infos de la fenêtre mère vers la fenêtre fille...

Discussions similaires

  1. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  2. XML DOM et gros fichiers
    Par Manu_Just dans le forum APIs
    Réponses: 4
    Dernier message: 28/03/2003, 09h50
  3. [DOM/SAX]Choix...
    Par miss8 dans le forum APIs
    Réponses: 4
    Dernier message: 17/03/2003, 18h37
  4. pb formatage document XML généré par un dom tree
    Par lionel69 dans le forum APIs
    Réponses: 11
    Dernier message: 17/10/2002, 09h53
  5. Réponses: 3
    Dernier message: 04/09/2002, 09h42

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