Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent pop-ups from being blocked

I am using a Facebook login method in my code on page load, but when I execute this code, the pop-up blocker closes the Facebook permission window.

How can I open this window with Javascript without needing to make an exception in the pop-up blocker?

Below is my code:

FB.login(function(response)
{
    if(response.session!=null)
    {
        window.location.href='http://example.com';
    }
},
{ perms: 'email,user_birthday,publish_stream' });
like image 224
Seema Avatar asked Feb 10 '11 11:02

Seema


2 Answers

You can do something like -

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");
      }

This will just redirect directly instead of opening a pop-up

like image 95
Rahul Avatar answered Nov 11 '22 04:11

Rahul


Yeah you need to call it with a user event, but strictly the onclick event, not any other:

<a href="#" onclick="fbLogin()"> Login</a> <!-- works -->

<a href="#" onmousedown="fbLogin()"> Login</a> <!-- doesnt work -->

<a href="#" onmouseup="fbLogin()"> Login</a> <!-- doesnt work -->
like image 45
Enmanuel Hernandez Avatar answered Nov 11 '22 06:11

Enmanuel Hernandez