我正在尝试将类似 FB 的按钮放置在基于 Angular JS 构建的单页网站上。点赞按钮必须显示在控制器显示的视图(不同于index.html)上。但“赞”按钮仅在我第一次加载该特定视图时才会显示。如果我在访问另一个视图后返回,该按钮不会显示。
下面是在视图控制器中加载 FB SDK 的代码 -
(函数(d,s,id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
返回;
}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(文档, '脚本', 'facebook-jssdk'));
索引.html有以下代码-
myView.html
layout="standard" data-action="like" data-show-faces="false" data->分享=“真”>
我尝试过各种方法,例如使用 FB.XFBML.Parse()、删除 FB sdk 的脚本标记并将其添加到每次加载中(希望它能像第一次一样工作)、尝试使用指令、放置fb-root div 在各种视图中,现在我一无所知:|
我觉得问题在于重新访问视图时加载或刷新 SDK,但我不确定。
我将不胜感激任何有助于我前进的意见,如果您需要更多信息,请告诉我。
谢谢,
萨姆.
我相信我找到了解决方案。
在小部件脚本的开头设置 FB = null;并删除“if (d.getElementById(id)) return;”
它应该看起来像这样:
FB = null;
(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/pt_BR/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)