我正在尝试使用facebook分享插件。如果我重新加载页面,它工作正常,但如果我没有重新加载页面,那么"分享按钮"没有出现。我已经尝试将facebook sdk代码移动到我的模板中并进入头部,但似乎都没有做到这一点。有任何想法吗?
这是我在开始标记
下方的fb代码 <div id="fb-root"></div>
<script>(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#xfbml=1&version=v2.5&appId=xxxxxxxxxxxxxxxx";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
我在我的html模板中实现 fbUrl在我的控制器中定义
<div class="fb-share-button" data-href="{{fbUrl}}" data-layout="button" id='fb-share'></div>
答案 0 :(得分:0)
问题是该功能立即运行。它是immediately invocable function expression (IIFE)。如果你把它放在头部,它会在文档的任何其余部分之前运行。放置它的唯一(可能)安全的地方是在文档的末尾,在body标记之前,当所有html元素都已加载时。
如果您注意到,其中一个调用是getElementById
,但如果您将其放入头部,则不会加载任何元素,如果您将其放在任何其他位置,则可能未加载ID元素。