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 :

onbeforeunload et envoi de variable.


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Par défaut onbeforeunload et envoi de variable.
    bonjour,

    J'ai fait quelques recherches sur google, mais je ne trouve pas de solution, c'est pourquoi je me décide à vous poser la question.

    Je souhaite utiliser javascript pour déconnecter un joueur de mon jeu en flash grâce à onbeforeunload.

    Pour cela, avant le script qui suit j'utilise php grâce auquel je récupère l'ip du joueur. Puis je l'associe au login du joueur ensuite à la connection dans flash, et dans ma bdd j'indique que le joueur est connecté.
    A la fermeture de la page j'aimerai que le javascript apelle une page php qui indique à ma bdd que le joueur est parti, en envoyant la variable $ip récupérée bien plus tôt.

    Voici le script, il est placé dans les balises HEAD de ma page :

    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
    <script language="javascript">
    		//Avant la fermeture de la page fonction closeIt
    		window.onbeforeunload = closeIt;
     
    		//Fonction appelé au moment de fermer la page
    		function closeIt()
    		{
    				//L'ip est récupéré avant grâce à php
    				var ip = $ip ;
    				//je passe la variable en get dans un lien vers ma page php.
    				document.location.href="phpi/disconnected.php?ip="+ip;
    				//puis j'ouvre une box d'alerte 
    				alert("déconnection du jeu !");
    		}
     
    </script>
    Et j'ai plusieurs problèmes.

    - Le script tel quel fonctionne sous ie, sous firefox, mais pas avec chrome. Je ne comprend pas pourquoi ! Car je vois que d'autres font fonctionner onbeforeunload sans soucis avec chrome !
    - Est il possible d'envoyer cette variable en POST et pas en GET (parce que c'est crade l'envoi de variable en GET dans mon cas, à la fermeture de la page, car ça ouvre une page transitive façon spam...
    - Pendant tout mes tests j'ai constaté qu'il était indispensable d'utiliser "alert("déconnection du jeu !");" pour appeler une page... Sinon ça ne fonctionnai pas. Est il possible de faire ça de façon transparente sans avoir à créer une alert?

    Voilà, je n'utilise jamais de javascript, pourtant ça ressemble pas mal à l'as... Si quelqu'un pouvait me répondre ou m'aiguiller ça m'aiderait franchement.

    Merci à tous !

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Avant toute chose, nous n'utilisons plus cette syntaxe :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script language="javascript">

    Mais bien celle-ci :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Par défaut
    Je vais corriger ça !
    Merci Vermine !

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,

    Envoie les données avec AJAX de façon synchrone.

    A+.

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    location.href n'est pas une propriété de document mais de window ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.location.href 
    ou 
    self.location.href
    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
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Par défaut
    D'accord et merci SpaceFrog, c'est corrigé. C'est le genre de choses que je ne sais pas car je ne connais pas le javascript comme je l'avais déjà écrit

    Merci à andry.aime, après quelques recherches autour des événements synchrones, je vois que :

    -L'AJAX me permet d'envoyer des données en post
    - Si ma fonction est synchrone avec un delay le onbeforeunload fonctionnera sous chrome, et sans boxe d'alert sur tout les navigateurs.

    Bon il me reste à regarder comment ça marche vu que je n'ai jamais touché à l'AJAX, mais merci à tous.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/09/2006, 20h12
  2. Envoi de variables/fichiers vers un script PHP
    Par e-king dans le forum Réseau/Web
    Réponses: 9
    Dernier message: 02/04/2006, 19h44
  3. envoi de variable par l'url...
    Par Empty_body dans le forum Langage
    Réponses: 7
    Dernier message: 11/01/2006, 20h08
  4. [PHP-JS] Envoi de variable sans passer par un submit
    Par adilou1981 dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2004, 19h21
  5. Réponses: 5
    Dernier message: 26/04/2004, 19h02

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