仅在单击fb.share按钮后调用FB.ui

时间:2015-02-17 09:48:10

标签: javascript jquery facebook facebook-graph-api facebook-javascript-sdk

我想要实现的目标是:

我有一个简单的Facebook分享按钮取自facebook dev。网站:

<div class="fb-share-button" data-layout="button_count"></div>

现在我添加了Facebook应用程序代码,它也是在开始正文标记之前从Facebook获取的:

<script>
window.fbAsyncInit = function() {
FB.init({
  appId      : 'XXXXXXXXXXXXXXXX',
  xfbml      : true,
  version    : 'v2.2'
});
};

(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/sdk.js";
 fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

现在我在facebook分享按钮下面添加了这个FB.ui脚本:

FB.ui(
{
method: 'share',
href: document.URL,
},
function(response) {
if (response && !response.error_code) {
  alert('Posting completed.');
} else {
  alert('Error while posting.');
}
}
);

目前的问题是,一旦页面加载,facebook分享就会自动触发,一切正常,但是,我想要的是facebook分享才会出现(和FB.ui一起工作)用户按下Facebook分享按钮而不是自动按下。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

使用jQuery单击带有fb-share-button类的按钮时,可以运行FB.ui代码:

$(".fb-share-button').click(function(){
    //here goes the FB.ui function
    FB.ui(
    {
        method: 'share',
        href: document.URL,
    },
    function(response) {
        if (response && !response.error_code) {
          alert('Posting completed.');
        } else {
          alert('Error while posting.');
        }
    });
});