fb login popup block

前端 未结 4 1860
失恋的感觉
失恋的感觉 2020-12-13 04:31

I am making using fb login feature but problem comming to me is that whenever I click on the fb login button before page media loading is completed, it blocks the popup for

4条回答
  •  萌比男神i
    2020-12-13 05:23

    I had the same problem and it kick my head for 3 days. I did stumble on the above mentioned solutions and they worked in Firefox and Edge but in Chrome not matter what ever i did i still got blocked left right and center.The other problem was when i called the function from a button press event the login dialog was not block but it didn't get any responses after the login dialog closes for further actions so i got stuck. So my solution is as follow, but you don't need to press the login in button it will redirect to the FB-login page without a button press event, and on return continue with all the other sdk steps. Just add this to your code and see if it helps, from there adjust according to your need

    function statusChangeCallback(response) {
                console.log('statusChangeCallback');
                console.log(response);
    
    
                // The response object is returned with a status field that lets the
                // app know the current login status of the person.
                // Full docs on the response object can be found in the documentation
                // for FB.getLoginStatus().
                if (response.status === 'connected') {
                    // Logged into your app and Facebook.
                    document.getElementById('Image2').style.display = "none";
                    document.getElementById('mail').style.display = "in-line";
    
                    testAPI();
                } else {
                    // The person is not logged into your app or we are unable to tell.
                    window.alert("Faça login no facebook antes de continuar - Obrigado");
                    window.location.href = 'https://www.facebook.com/dialog/oauth' +
                    '?client_id=55215442252214521548' +
                    '&scope=public_profile,email,user_friends' +
                    '&redirect_uri=' + encodeURIComponent(document.URL);
                    document.getElementById('Image2').style.visibility = "hidden";
                    document.getElementById('mail').style.display = "in-line";
    
                }
            }
    
            // This function is called when someone finishes with the Login
            // Button.  See the onlogin handler attached to it in the sample
            // code below.
            function checkLoginState() {
                FB.getLoginStatus(function (response) {
                    statusChangeCallback(response);
    
                });
            } 
    

提交回复
热议问题