gpt4 book ai didi

javascript - Vuejs 组件等待 facebook sdk 加载

转载 作者:可可西里 更新时间:2023-11-01 01:59:35 26 4
gpt4 key购买 nike

我有一个组件显示登录按钮或 facebook 用户的用户名。取决于他是否登录。

现在在这个组件中我使用

created

事件,所以我会立即检查登录。简要创建代码:

FB.getLoginStatus(function(response) {
//more things.....

错误是说FB没有定义,确定他是对的,FB 尚未加载。

我这样加载 facebook

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

(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>

最佳答案

我一直在寻找这个问题的答案。

感谢 vbranden 的评论,我能够让它为我工作。

您需要做的是在创建的方法中初始化 facebook sdk。然后从 fbAsyncInit 函数内部调用登录。

这是对我有用的:

<body>
<div id="test"></div>

<script>
new Vue({
el: '#test',
created: function() {
console.log('created main');
window.fbAsyncInit = function() {
FB.init({
appId : '1111111111',
xfbml : true,
version : 'v2.7'
});

//This function should be here, inside window.fbAsyncInit
FB.getLoginStatus(function(response) {
console.log(response);
});

};

(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>
</body>

关于javascript - Vuejs 组件等待 facebook sdk 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38951751/

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