Prevent pop-ups from being blocked

前端 未结 5 1090

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 th

相关标签:
5条回答
  • 2020-12-05 06:10

    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

    0 讨论(0)
  • 2020-12-05 06:11

    If you try to open a popup automatically then there is a high possibility that popup blockers will become activated, as far as I know, it has to be based on some User action, for example click of a button. Try to execute this code on click of a button, it should work.

    0 讨论(0)
  • 2020-12-05 06:15

    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 -->
    
    0 讨论(0)
  • 2020-12-05 06:26

    There'd be no point in popup blockers existing if you could just code around them. You'll either need to find a method that doesn't use a popup or require some user interaction with the browser to open the popup.

    0 讨论(0)
  • 2020-12-05 06:29

    This is specifically denied in the documentation:

    "You should only call this on a user event as it opens a popup. Most browsers block popups, unless they were initiated from a user event, such as a click on a button or a link."

    It's also simply poor UX.

    0 讨论(0)
提交回复
热议问题