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 :

onunload window open


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Points : 17
    Points
    17
    Par défaut onunload window open
    Bonjour,
    voila ma problematique, (je precise je suis developpeur du dimanche donc pas bon du tout )

    j'aimerais lancer
    onunload="window.open('http://www.nomdusite.com');".

    ouvrir une page si la personne sort de la page
    ça c"est facile (a mettre dans le body)

    mais en faite je voudrais autoriser l'ouverture de la nouvelle page que si il n' as pas remplis le formulaire de la page sur laquelle il se trouve

    un truc du type si un champs du formulaire pas remplis et qu'il quitte la page alors on ouvre la nouvelle page , si non (champs du formulaire remplis et qu'on quitte la page) on ouvre pas la nouvelle page

    il doit falloir faire un code dans le genre
    voir une fonction mais la je suis un peu trop novice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(f.nom.value == "")
            {
            $ouvpage="window.open('http://www.nomdusite.com');"
            }
    else {  $ouvpage=";"
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onunload=$ouvpage>
    si quelqu'un peu m'aider
    merci

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Bonsoir,
    pour mieux t'organiser je te conseille de ne pas mélanger tes codes JS et PHP. Tu peux faire tout en JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    window.onunload = function( ){
      if (!f.nom.value) {
        window.open("http://www.nomdusite.com");
      }  
    }
    Ou bien plus compliqué, mais te permet d'ajouter plusieurs fonctions sur le même évènement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    window.addEventListener("unload", function( ){
      if (!f.nom.value) {
        window.open("http://www.nomdusite.com");
      }
    }, false);
    Au fait, si le champ n'est pas rempli, est-ce que tu veux empêcher la fermeture de la page en plus d'en ouvrir une autre ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Points : 17
    Points
    17
    Par défaut fonction
    Merci de ta reponse c'est passionnant
    si j'ecrit cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    window.onunload = function( ){
      if (!f.nom.value) {
        window.open("http://www.nomdusite.com");
      }
    }
    il faut que je l'appel dans le body ?
    (je suis vraiement nul)
    je fais comment ???
    merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Points : 17
    Points
    17
    Par défaut developpement
    J'ai essayé ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      function fenferme()
    { 
      if (!f.nom.value) {
        window.open("http://www.nomdusite.com"); 
    }
    </script>
     
    </head>
    <body onunload='fenferme()'>
    marche pas ..

  5. #5
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Normalement ça marche si on corrige les erreurs élémentaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function fenferme() {
      if (!f.nom.value) {
        window.open("http://www.nomdusite.com");
      } // il manquait une accolade
    }
    </script>
     
    </head>
    <body onunload='fenferme()'>
    Peut-être aussi que tu as un problème avec la variable f. Comme ton script agit à la fin de la vie de la page, c'est difficile de voir les éventuels messages d'erreur. Là je recommande un alert pour bloquer le script le temps que tu aies bien vu ce qui se passe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function fenferme() {
      alert("f: " + f);
      alert("f.nom: " + f.nom);
      alert("f.nom.value: " + f.nom.value);
      if (!f.nom.value) {
        window.open("http://www.nomdusite.com");
      }
    }
    Si par exemple f.nom est indéfini, ton script renvoie une ReferenceError en tentant d'accéder à f.nom.value. Avec mes alert tu verras tout de suite s'il y a un problème.

    Autre chose, essaye window.open("http://www.nomdusite.com", "_blank");, tu verras si un bloqueur de popups est à l'œuvre.

Discussions similaires

  1. popop window.open événement OnUnLoad
    Par Mathieu72 dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 01/08/2007, 20h10
  2. coordonnées d'une fenêtre avec window.open
    Par neecolas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2005, 09h08
  3. Problème de titre avec la fonction window.open
    Par kloss dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/04/2005, 18h34
  4. window.opener ____ perdu
    Par camyo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/02/2005, 16h01
  5. QueryString avec window.Open ??
    Par christine dans le forum ASP
    Réponses: 4
    Dernier message: 29/08/2003, 09h27

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