在同一页面中多次添加facebook插件

时间:2013-04-26 15:22:54

标签: javascript facebook-like facebook-javascript-sdk

我有一个joomla模块当我将该模块多次放在同一页面中以显示不同的facebook插件(评论,比如,活动源..)以及javascript sdk代码多次添加在页面中相同 -

<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_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

它会产生问题,有时插件根本没有显示,我必须刷新页面才能看到。有没有办法一次添加这些代码?我可以把它放在一个外部脚本文件,但我必须根据php代码的模块设置动态地将语言字符串“en_GB”更改为任何其他语言,所以它不可能.plz帮助我还没有解决方案。 如果我可以使用这些dec:

<script src="http://connect.facebook.net/en_US/all.js"></script> 

然后问题解决了,但这是正确的网址插件工作完美没有上面的sdk代码?

1 个答案:

答案 0 :(得分:0)

  

我可以把它放在一个外部脚本文件中但是我必须根据php代码的模块设置动态地将语言字符串“en_GB”更改为任何其他语言,所以它不可能。

为什么不在之前输出您需要的语言标识符作为JavaScript变量,然后相应地修改嵌入脚本的行:

<script>var languageToUseForFBScript = "en_GB";</script>


// in external script, embedded after above line:
(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/" + languageToUseForFBScript + "/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));