<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxx',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.10'
});
FB.AppEvents.logPageView();
};
(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>
我还有一个部门:
<div class="fb-login-button btn-fb"
data-max-rows="1"
data-size="large"
data-button-type="continue_with"
data-show-faces="false"
data-auto-logout-link="false"
data-use-continue-as="false"
scope="public_profile, email"
onlogin="checkLoginState()">
</div>
当我部署时,我可以看到FB对话框,但它给出了一个错误:
"sdk.js:110 Uncaught ReferenceError: checkLoginState is not defined"
我猜想checkLoginState需要暴露于全局范围才能修复此错误。所以我试过了
window.checkLoginState = function() {
...
}
根据我的测试,我发现只有在checkLoginState函数中添加另一个JS调用时,才会出现这种行为,即:
window.checkLoginState = function () {
console.log("checkLoginState >>>");
socialAuth.checkFBLoginStatus();
};
如果我删除
socialAuth.checkFBLoginStatus()
checkLoginState
已找到。
我正在寻求帮助以克服此错误。