【问题标题】:facebook “Like box” in ajax loaded page only loads the first time?ajax加载页面中的facebook“Like box”只加载第一次?
【发布时间】:2013-06-13 11:09:27
【问题描述】:

我想在 ajax 加载页面中显示 Facebook“Like box”插件和其他一些 FB 代码。

当我在普通的 html 页面中加载它时,它可以正常工作,但是当我尝试将它放在 ajax 加载页面中时它只加载第一次,当我点击链接时第二次不加载页面来加载页面?如果我清除缓存,它只会加载页面。

索引文件初始化fb代码。

FB.init({
  appId      : '277065222', // App ID
  status     : true, // check login status
  cookie     : true, // enable cookies to allow the server to access the session
  xfbml      : true,  // parse XFBML
  oauth      : true
});

我使用以下代码加载 ajax 页面:

 function loadFacebook(){

$('#container').load('http://www.manmade.se/manmade/guiden/facebook_onweb.html');
FB.XFBML.parse();
}

在 ajax 加载页面中,我有 facebook 代码,例如 facebook Like 框。

【问题讨论】:

  • 您能否更具体地了解 ajax 调用究竟返回了什么? “不加载页面”是什么意思? ajax调用没有成功或者fb代码没有被解析?

标签: ajax facebook


【解决方案1】:

调用 fb 脚本后,您可以在页面加载中调用 fb par 脚本

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


$(document).ajaxComplete(function () {
    try {
        FB.XFBML.parse();
    } catch (ex) { }
});

【讨论】:

    【解决方案2】:

    reloadlike.html

    <div class="fb-like fltLeft" data-href="http://yrl_like" data-send="false" data-layout="button_count" data-width="87" data-show-faces="false"></div>
    

    这应该每次都有效。

    我猜你的回调不对。

    $('#container').load('reloadlike.html', function() {
        FB.XFBML.parse();
    });
    

    【讨论】:

    • 谢谢,但它仍然只显示第一次页面。请参阅 www.manmade.se/guiden.asp 并在底部调用左侧链接。脸书在网络上。我不明白为什么它第一次加载 ir,但停止工作。它每次在 ajaxpage 中显示一个警报,但不显示其他内容。
    • 我已经更新了我之前的评论。 ajax 请求应该只包含类似标签的 FBML。在您的 facebookonweb.html 中,所有的 html 都在那里......所以将 fbml 代码分开,仅用于重新加载。
    • 好的,但问题是在 facebook_onweb.html 页面中我有 2 个 Like 框和一些其他的 facebook 代码。使用 facebook api 来自 facebook 的专辑。
    • 我所做的是我尝试了下一个给定脚本的 firebug 为您的 asp。我在 facebook pplugins 正确加载的所有时间都点击了很多次。 $('#container').load('manmade.se/manmade/guiden/facebook_onweb.asp', function(){ FB.XFBML.parse(); });
    【解决方案3】:

    改变一点来自 bugrasitemkar 的示例代码,在 ajax 代码的末尾,我包含了这个 jquery 脚本,它可以工作:

    <script type="text/javascript">
        $(document).ready(function() {
            try {
                FB.XFBML.parse();
            } catch (ex) { }
        });
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      相关资源
      最近更新 更多