0

我有一个 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”动态更改为任何其他语言,所以它不可能。请帮助我还没有解决方案。如果我可以使用这些 dec:

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

然后问题解决了,但是如果没有上述 sdk 代码,插件的正确 url 是否可以完美运行?

4

1 回答 1

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'));
于 2013-04-26T15:41:21.797 回答