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 :

Faire se fermer une fenêtre toute seule, ça ne marche plus


Sujet :

JavaScript

  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut Faire se fermer une fenêtre toute seule, ça ne marche plus
    Bonjour

    J'ai une application qui génère un fichier excel en xml, et un bouton qui permet d'ouvrir cet excel dans une nouvelle fenêtre.
    Le xml du excel est placé dans une variable de session, et je la met dans le buffer avant de l'afficher (voir dans le code).

    Le bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type="button" value="version imprimable" onclick="window.open('print.php')">
    Le fichier print.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php 
            $contents = ob_get_contents();
            $filename = "excelTemp.xls";
            unlink($filename);
            file_put_contents("d:\\web\\www\\consult\\$filename", $contents);
            //ob_flush();
            ob_end_clean();
            echo '<html><head></head><body onload="window.open(\''."./$filename".'\')";opener=self;self.close()"></body></html>';
            
            
    ?>
    Quand je clique sur le bouton, le navigateur ouvre une fenêtre print.php, qui ouvre une autre fenêtre exceltemp.xls.
    Ce qui fait 2 fenêtre ouvertes, dont une vide (print.php)

    Comment faire pour que cette fenêtre se ferme d'elle-même à l'ouverture ?
    L'auto-fermeture est possible pour un popup avec la commande self.close, je ne comprends pas pourquoi mon code ne donne pas le résultat attendu.

    Merci d'avance pour vos idées

  2. #2
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Généralement, j'utilise windows.close(); et ca marche sans probléme

  3. #3
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Oups c'est window.close();, y'a pas de "s" ...

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    opener est en lecture seule ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Euh ... Pourquoi ouvrir deux fenêtres ? Ne serait-il pas plus judicieux de faire le code suivant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    ...
    echo "<html><head></head><body onload=\"location.href='$filename'\"></body></html>';
    ?>
    ou un <meta name="Refresh" content="url=$filename"> ou ... ? Pour ouvrir un seul fichier, deux fenêtres, c'est énorme

  6. #6
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Merci à tous les trois pour vos réponses. Finalement j'utilise le dernier code de dingoth, mais pour une raison que j'ai oubliée, je ne pouvais pas faire comme ça dans une ancienne version de mon code.

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

Discussions similaires

  1. Fermer une fenêtre et pas toutes les fenêtres ouvertes
    Par Sinakhine dans le forum Général Java
    Réponses: 4
    Dernier message: 29/10/2012, 13h06
  2. [Delphi 6] Empêcher l'ouverture ou fermer une fenêtre
    Par KrusK dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 08/09/2005, 11h55
  3. Fermer une fenêtre depuis une autre...
    Par nicolb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/03/2005, 10h22
  4. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09
  5. Fermer une fenêtre au bout d'un certain temps.
    Par cprogil dans le forum Composants VCL
    Réponses: 5
    Dernier message: 27/11/2003, 18h25

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