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 :

Tester si fenêtre existe après submit


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 20
    Points : 12
    Points
    12
    Par défaut Tester si fenêtre existe après submit
    Bonjour,

    Meilleur voeux pour l'année 2005.

    Voici mon problème :

    Dans une page, je fais une soumission de formulaire automatique (dans le body onLoad, j'exécute une fonction qui fait un submit) avec un target=_blank. Tout marchait pour le mieux sauf depuis l'apparition du SP2 de XP qui empêche certain submit !!!

    Y a t'il la possibilité de tester si la fenêtre a bien été ouverte (un peu comme après un window.open()) ???

    Bien à vous et merci d'avance,

    Ronald

  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 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 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    ta page qui s'ouvre dans le blank à un titre ?
    teste
    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 !

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Yo SpaceFrog,

    Merci pour ta réponse, mais j'ai du mal m'exprimer.

    Je cherche à déterminer si la page ouverte via le submit() (target=_blank) a bien été ouverte ?

    Avec ce code,
    je teste plutôt si ma page mère existe à partir de la page fille ?

    Ronald

  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 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    ben non pas si tu mets ce code dans la page mère avec le titre de la page fille ...
    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
    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 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    sinon ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
      w=document.form.sumbit();
      }
    catch(err) {
      document.write("Bloqueur de popup");
      }
    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 !

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Bon voilà la solution (pour les pop-up blocker de yahoo! et WXP SP2) que j'ai appliquée avec les commentaires qui vont avec :

    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
     
    // Identificateur de la fenêtre
    var idX=null;
     
    // Fonction appelée par le onLoad() du body
    function send() {
      idX = window.open("", "XWin");
     
      // Le fait de faire le open() permet de valider la nouvelle fenêtre
      idX.document.open();
     
      // Il faut attendre >250ms pour que le open() fasse effet
      // et que l'on puisse déterminer si la page existe toujours
      setTimeout("send2();", 350);
    }
     
    // Détermine si la fenêtre est toujours ouverte
    // Si c'est le cas, on charge la page que l'on veut (dans l'exemple : letsGo.asp)
    // Sinon, on affiche un message
    function send2() {
       if (idX==null || idX.closed) {
         alert("Y a quelque chose qui coince !!!");
       } else {
         document.confirmOffre.action="./letsGo.asp";
         // Même nom que pour le window.open()
         document.confirmOffre.target="XWin";
        document.confirmOffre.submit();
      }
    }
    Pour résumer :
    J'ouvre une nouvelle fenêtre via un XWin=window.open(),
    Si un pop-up blocker agit, la fenêtre sera considérée comme fermée.

    Le seul hic, c'est que l'objet XWin est en mémoire et est considéré comme existant même si la fenêtre a été fermée par un popup blocker.

    Pour cela, le fait de faire un XWin.document.open() à l'air de valider la fenêtre !!! (J'ai essayé sans faire ça et en augmentant le temps du timer, la fenêtre était toujours considérée comme existante)
    Puis il faut attendre au moins 250ms avant de déterminer si la fenêtre est encore ouverte --> setTimeout().

    Si la fenêtre est toujours ouverte, je fais un submit dans cette fenêtre...hé hop l'affaire est dans l'sac...

    Pour générer des noms de fenêtre unique (identique à target=_blank), il suffit d'ajouter la date et l'heure formatée (yyMMddhhmmss) derrière le XWin (mon exemple).

    Voilà, j'espère que ça aidera quelqu'un car moi j'ai perdu 5 heures pour ce brol.

    A+

    Ronald

  7. #7
    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 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Oki merci pour le tuyau c'est toujours bon à savoir
    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 !

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

Discussions similaires

  1. Ouvrir nouvelle fenêtre Outlook après click sur bouton
    Par n@n¤u dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 14/06/2006, 17h23
  2. select apres submit
    Par mereyj dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 10/09/2005, 15h50
  3. instructions apres submit
    Par amika dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/06/2005, 18h34
  4. MDI => Tester si une fenêtre existe déjà ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/04/2005, 21h41
  5. Réponses: 5
    Dernier message: 25/11/2004, 09h11

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