gpt4 book ai didi

javascript - Facebook 在授权后不会重新加载 Canvas

转载 作者:行者123 更新时间:2023-11-28 01:16:00 25 4
gpt4 key购买 nike

我在 Canvas 应用程序上有以下 JavaScript,如果用户未登录(通过 php 检查),则会调用该 JavaScript。

<script>
window.fbAsyncInit = function() {
FB.init({
appId : '(appid)',
xfbml : true,
version : 'v2.0'
});


FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log('Logged in.');
}
else {
FB.Event.subscribe('auth.statusChange',function(response) {
if (response.authResponse) {
setTimeout('window.location.reload()',0);
};
});
FB.login(function(){}, {scope: 'email,user_birthday,user_friends'});
}
});
};

(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'));
</script>

问题是,即使我告诉它这样做,窗口也不会重新加载。我知道该函数是在按“登录”并接受权限后调用的,因为如果我包含并警告它会在此时显示。

如您所见,我已经尝试将其包装在 setTimeout 中,但这不起作用。

如果我在此之后按 F5,页面将重新加载并且我已登录。

救命!

最佳答案

事实证明,我所要做的就是更改为:

top.location.href="https://apps.facebook.com/appname";

而不是window.location.reload()

这也可以防止浏览器询问是否应该重新提交数据。

关于javascript - Facebook 在授权后不会重新加载 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23827468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com