Facebook FB分享器与jQuery-" FB未定义"错误

时间:2014-03-24 06:33:36

标签: facebook-javascript-sdk

我正在实施facebook分享。但是我收到错误Uncaught ReferenceError: FB is not defined。但是,如果我将代码放在getScript函数中(在下面的代码中),那么它可以工作,但仅限于页面加载。 查看过许多答案,例如this,但无法获得解决方案。

    <div id="fb-root"></div>
    <script>
    jQuery(document).ready(function() {
      jQuery.ajaxSetup({ cache: true });
      jQuery.getScript('//connect.facebook.net/en_UK/all.js', function(){
            window.FB.init({
              appId: 'XXX',
            });     
            jQuery('#loginbutton,#feedbutton').removeAttr('disabled');
        });
        FB.ui(
          {
            method: 'feed',
            name: 'Facebook Dialogs',
            link: 'http://XXX.website',
            picture: 'http://XXX.website/logoroundTR.gif',
            caption: 'MyCaption',
            description: 'MyDescription'
          },
          function(response) {
            if (response) {
              alert('Post was published.');
            } else {
              alert('Post was not published.');
            }
          }
        );
    });
    </script>
<button><fb:like href="http://XXX.website/" layout="button_count" action="like" show_faces="true" share="true"></fb:like></button>

p.s。:第二个问题:如何将按钮链接到FB.ui函数。有什么简单的方法吗?

1 个答案:

答案 0 :(得分:0)

好的找到了一个可行的解决方案。轻微哈克。

删除FB.ui并将其放在按钮onclick中,效果很好。

因此,对于facebook javascript sdk的自定义标题,标题,图片和说明,可以执行以下操作:

<div id="fb-root"></div>
<script>
jQuery(document).ready(function() {
  jQuery.ajaxSetup({ cache: true });
  jQuery.getScript('//connect.facebook.net/en_UK/all.js', function(){
        window.FB.init({
          appId: 'appID',
        });     
        jQuery('#loginbutton,#feedbutton').removeAttr('disabled');
    });
});
</script>
<button onclick="javascript:FB.ui({method: 'feed',name: 'Facebook Dialogs',link: 'http://xxxY.com',picture: 'http://xxxy.com/wp-content/img/logoroundTR.gif',caption: 'SandeepCaption',description: 'SandeepDescription'});"> Click Here </button>