我正在使用Facebook JS SDK来实现网站登录,我在页面上有以下代码。
这在所有桌面浏览器和iPad上都可以正常工作,但在iPhone / iPod的Mobile Safari上,登录按钮会打开一个新标签页,但不会返回到页面,因此回调函数不会被调用。当我在我的登录(或注册)页面点击Facebook登录按钮时,它会在新标签页中打开Facebook oauth登录页面,我输入我的Facebook登录详细信息,然后Facebook标签页关闭,但焦点没有返回到我的登录页面。我没有Mac来使用检查器,但是有个朋友说他们在调试控制台中得到了这个错误“无法向https://m.facebook.com/发送消息。接收方具有起源https://www.facebook.com/”
要重现步骤: 1. 在iPhone上访问http://eventstagr.am/register(Safari Mobile和Chrome都无法正常工作) 2. 点击注册 期望结果:Facebook标签应该关闭并在注册页面上调用javascript回调函数 实际结果:Facebook标签关闭后,焦点未返回到注册页面
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({"appId":"xxxxxxxxxxxxxx","xfbml":true,"oauth":true,"status":false,"cookie":true,"logging":false});
onFbInit();
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + "\/\/connect.facebook.net\/en_US\/all.js";
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
<fb:login-button scope="email" autologoutlink="false">Log in using Facebook</fb:login-button>
<script>
function goLogIn(){
window.location = "/fb/login_check";
}
function onFbInit() {.
if (typeof(FB)!= 'undefined' && FB!= null ) {
FB.Event.subscribe('auth.statusChange', function(response) {
setTimeout(goLogIn, 500);
});
}
}
</script>
这在所有桌面浏览器和iPad上都可以正常工作,但在iPhone / iPod的Mobile Safari上,登录按钮会打开一个新标签页,但不会返回到页面,因此回调函数不会被调用。当我在我的登录(或注册)页面点击Facebook登录按钮时,它会在新标签页中打开Facebook oauth登录页面,我输入我的Facebook登录详细信息,然后Facebook标签页关闭,但焦点没有返回到我的登录页面。我没有Mac来使用检查器,但是有个朋友说他们在调试控制台中得到了这个错误“无法向https://m.facebook.com/发送消息。接收方具有起源https://www.facebook.com/”
要重现步骤: 1. 在iPhone上访问http://eventstagr.am/register(Safari Mobile和Chrome都无法正常工作) 2. 点击注册 期望结果:Facebook标签应该关闭并在注册页面上调用javascript回调函数 实际结果:Facebook标签关闭后,焦点未返回到注册页面
如果您已经拥有账户,可以从http://eventstagr.am/login开始重复上述步骤,结果是相同的。