Twitter时间线在Vue挂接中加载

时间:2019-06-10 21:08:05

标签: javascript vue.js twitter

我在将Vue应用程序中加载Twitter时间轴时遇到问题。时间线在初始页面访问期间正确加载,但是在使用导航或刷新页面后,twitter时间线不再出现。

我正在尝试通过已安装的函数加载widgets.js文件:

mounted: function () {
//TWITTER 
window.twttr = (function (d,s,id) {
var t, js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
}(document, "script", "twitter-wjs"));
twttr.widgets.load();
}

我正在使用twttr.widgets.load();以便根据此文档https://developer.twitter.com/en/docs/twitter-for-websites/javascript-api/guides/scripting-loading-and-initialization动态加载窗口小部件。

值得注意的是,我在控制台中收到以下错误,这基本上意味着在调用twttr.widgets.load();时,widgets.js文件不可用:

[Vue warn]: Error in mounted hook: "TypeError: Cannot read property 'load' of undefined"

有任何提示吗?

1 个答案:

答案 0 :(得分:0)

您可以在load()函数中调用ready()

twttr.ready(() => twttr.widgets.load());