我在我的 Vuejs 应用程序中集成了 Facebook 页面插件。当我从一个组件移动到另一个组件并返回到包含 Facebook 页面的组件时,页面没有加载。它仅在第一次和每次加载完整站点时加载。有什么解决办法吗?
问问题
1051 次
2 回答
2
经过一番挖掘,找到了答案。每次安装组件时,我都需要显式加载脚本。使用了这个 NPM 包 [ https://www.npmjs.com/package/vue-plugin-load-script ]
mounted() {
this.$loadScript(
"https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v5.0&appId=***&autoLogAppEvents=1"
)
.then(() => {
this.$nextTick(() => {
window.FB.XFBML.parse();
});
})
.catch(() => {
console.log("SCRIPT LAODING ERROR");
});
}
于 2020-01-02T16:05:37.167 回答
0
您可以像这样让 FB 使用 vue 路由器进行解析:
mounted() {
if (typeof FB === "undefined") {
this.fbInit();
} else {
window.FB.XFBML.parse();
}
}
methods() {
fbInit() {
window.fbAsyncInit = function() {
FB.init({
appId: "11111111111",
autoLogAppEvents: true,
xfbml: true,
version: "v6.0"
});
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/fi_FI/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
})(document, "script", "facebook-jssdk");
},
}
于 2020-04-27T15:51:51.817 回答