下面将登录事件绑定到一个 div。如果我点击它,我会得到预期的 js sdk 登录弹出窗口。但是,在使用我的凭据提交弹出窗口后,弹出窗口变为白色并且不会关闭。如果我刷新页面,我已登录,但它不会像您预期的那样自动刷新。有人有什么想法吗?
编辑:相同的代码(具有不同的应用程序 ID 和域凭据)在不同的服务器上工作。这让我相信我的问题可能与下面的代码无关。是否有任何应用程序或服务器配置可能导致登录弹出窗口无法关闭/更新?
<!DOCTYPE html>
<html class="no-js ie ie10plus" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object#">
<script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.0.6-development-only.js"></script>
</head>
<body>
<div id="fb-root"></div>
<div id="fbLogin">Test login link</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" ></script>
<script>
var fbmm = {};
window.fbAsyncInit = function() {
FB.init({
appId : '339910146083688', // App ID
cookie: true,
xfbml: true,
status: true,
oauth: true
});
$(document).ready(function(){
$("#fbLogin").click(function(){
console.log('test');
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
});
});
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
</body>
</html>