FB-Login-Button(HTML)触发了被浏览器阻止的弹出窗口



我在浏览器阻止的Facebook登录弹出窗口正在努力。我正在使用FB-Login-Button HTML代码来初始化FB登录过程,如下所示:

<div class="fb-login-button" data-max-rows="1" data-size="large" data-button-type="continue_with" data-show-faces="true" data-auto-logout-link="false" data-use-continue-as="true" data-scope="user_friends, email, public_profile"></div>

我以FB文档中指定的常规方式初始化Facebook JS:

    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'myAppID',
          cookie     : true,
          xfbml      : true,
          version    : 'v2.11'
        });
        FB.AppEvents.logPageView();
        fbApiInit = true; //init flag 
      };
      (function(d, s, id){
         var js, fjs = d.getElementsByTagName(s)[0];
         if (d.getElementById(id)) {return;}
         js = d.createElement(s); js.id = id;
         js.src = "https://connect.facebook.net/en_US/sdk.js";
         fjs.parentNode.insertBefore(js, fjs);
       }(document, 'script', 'facebook-jssdk'));
    </script>

但是,每当用户单击"继续使用Facebook"按钮时,弹出窗口将被浏览器阻止。

有人遇到了类似的问题吗?有人有建议的解决方案吗?(我知道浏览器会阻止用户直接提示弹出窗口,但我在哪里努力检查/修改HTML FB-Login-button触发登录过程的方式)

编辑我已将网站的片段(登录页面)部署到GAE中的测试URL:https://udacity-test-helloworld.appspot.com/login。如果成功应将"测试主页"的页面重定向。

很多事前都非常感谢mateusz

现代浏览器阻止客户端弹出窗口,直到您允许打开。您可以使用诸如PHP-SDK之类的内容将用户重定向另一个空白页,并进行相同的操作(登录),并避免JavaScript弹出窗口阻止。阻止弹出窗口是一个浏览器功能,因此,就像Luschn在评论中所写的那样,您应该依靠浏览器。

HER是Facebook的PHP-SDK:https://github.com/facebook/php-graph-sdk这是文档:https://developers.facebook.com/docs/reference/php/

希望它有帮助;)

最新更新