2010-10-13 8 views
0

Je suis actuellement en train de construire un site web qui récupère des vidéos youtube et des images flickr et permet aux utilisateurs de les commenter sur le site. Tout en ayant son propre système de commentaires, le site dispose également d'une option pour se connecter avec youtube/flickr pour commenter sur youtube ou flickr avec leurs noms d'utilisateur. Je le fais en ouvrant une fenêtre contextuelle (vrai popup, pas un genre de popup jquery), en fermant le popup après qu'ils se sont connectés et en stockant leurs jetons dans un $ SESSION $ PHP. La question est, j'ai beaucoup de choses en cours avec jQuery et je voudrais les laisser basculer entre les commentaires en tant que visiteur du site de commenter sur Flickr/YouTube après leur connexion sans actualisation. Fondamentalement, j'aurais besoin d'un moyen de détecter quand le pop-up se ferme afin que je puisse ensuite faire une demande à un fichier PHP qui me dirait si l'utilisateur a un jeton enregistré dans le $ _SESSION ou non et masquer le nom et les boîtes e-mail du formulaire de commentaire car ils auraient seulement besoin de la boîte de saisie. Une autre façon serait de déclencher un setInterval() quand ils ouvrent le popup et vérifient le $ _SESSION toutes les 2/3 secondes par exemple, mais je ne pense pas que ce soit la meilleure solution. Idéalement, je voudrais quelque chose qui fonctionne dès que l'utilisateur ferme la fenêtre.

Plus de détails: J'utilise http://swip.codylindley.com/popupWindowDemo.html pour afficher les fenêtres pop-up Le script de rappel pour les deux fonctions ne self.close un() après avoir stocké le jeton dans un _SESSION $ Les utilisateurs peuvent être connecté à la fois Flickr et Youtube (mais je ne pense pas que cela compte plus). La différence entre commenter en tant que visiteur et utilisateur Flickr/Youtube est que vous avez trois champs (nom, email, message) en tant que visiteur et un seul sinon (message) Je vérifie le chargement de la page, donc si l'utilisateur actualise le page à ce stade, tout va bien, mais j'aimerais qu'il ne soit pas obligé de le faire, ou si au moins il se rafraîchirait automatiquement.

Enfin, je suis bon pour aller avec d'autres options, tant que l'utilisateur n'a pas à quitter la page, se rafraîchir pour permuter entre le visiteur et l'utilisateur connecté. Utiliser jQuery dans la page, donc si c'est une solution basée sur jQuery, encore mieux.

Désolé pour le poste long, n'a pas pu trouver un moyen de le rendre plus court.

Merci pour l'aide les gars!

EDIT

setInterval() avec une fonction qui appelle un script PHP pour vérifier la variable $ _SESSION a travaillé comme un charme, pas du tout aussi mauvais sur l'expérience de la performance ou de l'utilisateur comme je m'y attendais. Pourtant, si quelqu'un peut penser à une meilleure solution, je suis prêt à l'accepter.

Merci!

+1

I votre commentaire mais écrémé un ajax en utilisant pour vérifier les cookies est possible et peut se faire. Je l'ai fait avant d'utiliser des intervalles. – Glycerine

+0

Je pensais que c'était possible, mais je préférerais le faire lorsque l'utilisateur ferme la fenêtre contextuelle, pas constamment. Il est très important de changer la forme tout de suite, quand l'utilisateur s'y attend, sinon il peut être mal interprété comme un mauvais comportement, je suppose ... – Claudiu

+0

@Glycerine J'ai essayé de le faire de la manière setInterval, fonctionne comme un charme. Merci de confirmer ma théorie, je suppose que j'étais juste à paresseux de faire un test avant de demander. – Claudiu

Répondre

0

Vous pouvez placer dans le code HTML pop-fenêtre:

<body onunload="window.opener.location.href = 'http://check.session.com/path/to/file.php'">