-1

我的问题如下:

当我将在加载了 Ajax 的页面中加载 facebook xml 标签(见下文)时,它不会显示。

table2.php 页面将通过 Ajax 在以下 div: 中加载<div id="update_div"></div>,但不会显示。

这是我将用于打印类似按钮等的标签:<fb:like href="http://website_url.nl" send="true" layout="button_count" width="450" show_faces="false"></fb:like>

我找不到这个问题的任何解决方案,希望任何人都可以帮助解决这个问题。

我的页面是代码如下:

索引.php

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" >
   <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
   <script type="text/javascript" src="/js/jquery.js"></script>
  <head>
   <script type="text/javascript">
   $.setDivContentAjax = function(){        
            var url = window.location.hash.replace( "#", ""); 
            var paramaters = null;
            try
            {
                var parameters = JSON.parse('{"' + decodeURI(url.replace(/&/g, "\",\"").replace(/=/g,"\":\"")) + '"}');
                //console.log(parameters);
            }
            catch(error) 
            {
            }

            targetdiv = $('#update_div');

            targetdiv.hide();
            $('#loading-image').show();

            $.ajax({
              url: '/includes/table2.php',
              context: targetdiv,
              type: "GET",
              timeout:18000, 
              data: parameters,
              success: function(data) {
                window.setTimeout(function() {$('#loading-image').hide(); targetdiv.html(data); targetdiv.show();} ,300);
              }

            });    
        }

        $(document).ready(function ()
        {   
            $.setDivContentAjax();

            $(window).bind('hashchange', function() {
                $.setDivContentAjax();
            });
        });
    </script>  
   </head>
  <body>
      <div id="loading-image" style="display:none; padding: 50px 0 50px 0; text-align: center;"><img src="/img/ajax-loader-circle.gif"></div>
  <div id="javascript" style="display:none;"></div>
  <div id="update_div"></div>
  </body>
</html>

表2.php

<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/nl_NL/all.js#xfbml=1&appId=APP_ID";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
 </script>
 <fb:like href="http://website_url.nl" send="true" layout="button_count" width="450" show_faces="false"></fb:like>
4

2 回答 2

1

这真的很简单并且有据可查:) 只需使用 JS-SDK 的 FB.XFBML.parse 方法来重新解析 while 文档或 DOM 的某些部分!

https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/

于 2013-01-24T10:59:43.507 回答
0
The solution:

<script>
  success: function(data) {
    $('#loading-image').hide();
    targetdiv.html(data);
    targetdiv.show();
    FB.XFBML.parse();
  }
</script>
于 2013-01-24T14:20:08.037 回答