Google Chrome Block弹出式Facebook登录



i在我的laravel php应用中启动fb.login(),但是Chrome阻止了弹出窗口:

<script>
    window.fbAsyncInit = function() {
        FB.init({
          appId      : '{{config('services.facebook.client_id')}}',
          xfbml      : true,
          version    : 'v2.5'
        });
     };
  (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 = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
    function facebookLogin(e){
        isLoggedIntoFacebook(function(isLoggedIn) {
            if (isLoggedIn) {
                window.location.href = '{{ route('social.redirect', ['provider' => 'facebook']) }}'
            } else {
                FB.login(function(response) {
                    loginUserIntoRegalosPersonales();
                }, { scope: ['email', 'user_birthday'] });
                FB.Event.subscribe('auth.login', function () {
                 window.location.href = '{{ route('social.redirect', ['provider' => 'facebook']) }}'
                });
            }
        });
    }
    function isLoggedIntoFacebook(callbackFunction) {
        FB.getLoginStatus(function(response) {
            var isLoggedIn = (response.status === 'connected');
            if (typeof (callbackFunction) == "function") {
                callbackFunction(isLoggedIn, response);
            }
        });
    }
    </script>

对不起,由于网站域的限制,我不能把它带到小提琴。

问题是什么?

这些事情很重要:

  • 仅在页面上使用FB.getLoginStatus
  • 直接在用户互动(鼠标单击)上使用FB.login,而不是(异步)回调函数

示例:http://www.devils-heaven.com/face-javascript-sdk-login/

不希望用户更改其浏览器设置,这将是一个非常糟糕的解决方案。修复您的代码,一切都可以。

Turn pop-ups on or off
1-Open Chrome.
2-In the top-right corner, click the icon you see: Menu or More .
3-Click Settings.
4-Click Show advanced settings.
5-Under "Privacy," click Content settings.
6-Under "Pop-ups," select Do not allow any site to show pop-ups (recommended) or Allow all sites to show pop-ups.

最新更新