12
votes

Empêcher les pop-ups d'être bloqués

J'utilise une méthode de connexion Facebook dans mon code sur la charge de la page, mais lorsque j'exécute ce code, le bloqueur Pop-up ferme la fenêtre de permission Facebook.

Comment puis-je ouvrir cette fenêtre avec JavaScript < / Code> Sans avoir besoin de faire une exception dans le bloqueur pop-up?

ci-dessous est mon code: xxx


2 commentaires

N'importe qui a une idée de montrer la fenêtre de permission de Facebook dans Iframe, il peut être résolu de problème de blocage popup. Avoir des ??


Voir la réponse possible ici: Stackoverflow.com/questions/11779955/...


5 Réponses :


5
votes

Si vous essayez d'ouvrir une popup automatiquement, il est possible que les bloqueurs contextuels soient activés, autant que je sache, il doit être basé sur une action de l'utilisateur, par exemple en cliquant sur un bouton. Essayez d'exécuter ce code en cliquant sur un bouton, cela devrait fonctionner.


2 commentaires

Oui Arnab! Il peut gérer via un événement de clic, mais j'ai besoin de montrer ceci à la page charge. Avoir une idée ???


Essayez document.getelementByID ('ShareButtonID'). Cliquez sur ()



6
votes

Il n'y aurait pas de point dans les bloqueurs contextuels existants si vous pouviez simplement les coder autour d'eux. Vous devrez soit trouver une méthode qui n'utilise pas une fenêtre contextuelle ni besoin d'une interaction de l'utilisateur avec le navigateur pour ouvrir la fenêtre contextuelle.


1 commentaires

Je ne veux pas utiliser l'interaction utilisateur, BCoz après avoir cliqué sur mon invité de lien d'invitation, rendez-vous sur ma maison où je souhaite montrer une permission de Facebook Popup sans aucune interaction utilisateur.



15
votes

Ceci est spécifiquement refusé dans la documentation:

"Vous ne devez appeler cela que sur un événement utilisateur car il ouvre une fenêtre contextuelle. La plupart des navigateurs bloquent des popups, à moins qu'ils n'étaient initiés à partir d'un événement utilisateur, tel qu'un clic sur un bouton ou un lien."

C'est aussi simplement pauvre UX.


2 commentaires

Je suis fortement en désaccord que c'est "simplement pauvre UX". Il est moins impossible d'éviter une popup, surtout dans le cas où l'utilisateur est déjà connecté à Facebook, où une popup apparaît et disparaît rapidement. Je dirais que c'est mieux la conception UX de rediriger pour OAuth plutôt que d'ouvrir une popup.


NEWDMIND mon commentaire ci-dessus ... Ce que je disais était en ce qui concerne une interaction initiée par l'utilisateur, je n'avais pas fait attention au fait que l'OP cherchait un moyen de clandestinement les autoriser via Facebook.



20
votes

Vous pouvez faire quelque chose comme -

var uri = encodeURI('http://example.com');
FB.getLoginStatus(function(response) {
      if (response.status === 'connected') {
                window.location.href=uri;
      } else {
         window.location = encodeURI("https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri="+uri+"&response_type=token");
      }


2 commentaires

Intéressant, mais demandez-vous des autorisations spécifiques telles que "{perms: 'email, user_birthday, publication_stream'}"?


Dans l'URI de Rediriger OAuth, en utilisant un paramètre supplémentaire GET 'STACHET'. Vérifiez développeurs.facebook.com/docs/reference/dialogs/oauth



6
votes

Ouais, vous devez l'appeler avec un événement utilisateur, mais strictement le onclick événement, pas d'autre: xxx


0 commentaires