FB共享插件,除非页面重新加载,否则不显示角度

时间:2015-10-27 02:46:16

标签: javascript angularjs facebook

我正在尝试使用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>

1 个答案:

答案 0 :(得分:0)

问题是该功能立即运行。它是immediately invocable function expression (IIFE)。如果你把它放在头部,它会在文档的任何其余部分之前运行。放置它的唯一(可能)安全的地方是在文档的末尾,在body标记之前,当所有html元素都已加载时。

如果您注意到,其中一个调用是getElementById,但如果您将其放入头部,则不会加载任何元素,如果您将其放在任何其他位置,则可能未加载ID元素。