【问题标题】:adding facebook plugins multiple times in same page在同一页面中多次添加 facebook 插件
【发布时间】:2013-04-26 23:41:21
【问题描述】:

我有一个 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> 

然后问题解决了,但是这个正确的 url 插件是否可以在没有上述 sdk 代码的情况下完美运行?

【问题讨论】:

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


    【解决方案1】:

    我可以将它放在外部脚本文件中,但我必须根据 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'));
    

    【讨论】:

    • 所以在我声明 然后我声明以下外部文件,您在上面写了 sdk 代码 - 你认为一切都会好起来的??考虑到这些声明也会在每个模块中出现多次,因为我正在使用 javascript
    • k 我可以在外部 js 文件中添加 javascript sdk 代码,但是我必须包含哪些
      才能使 sdk 正常工作?我该怎么做才能在每个模块加载时页面中只显示一个“
      ”。
    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 2015-09-04
    • 2020-07-29
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2017-07-18
    • 2018-05-05
    相关资源
    最近更新 更多