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

原文 标签 javascript jquery facebook facebook-graph-api facebook-javascript-sdk

我想要实现的是:

我有一个简单的Facebook分享按钮,来自Facebook开发者。现场:

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


现在,我在开始body标签之前添加了同样来自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分享按钮,而不是自动。有人可以帮我吗?

最佳答案

当您使用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.');
        }
    });
});

关于javascript - 仅在单击fb.share按钮后才调用FB.ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28558995/

相关文章:

javascript - 如何在 package.json 内的 npm 脚本中使用 SECRET_ENV?

javascript - jQuery鼠标事件处理

ios - 获取 Facebook 用户基本信息时收到错误响应

jquery - Facebook 中的通知

javascript - 从axios响应中 react 设置状态

javascript - 当另一个字段不为null时,将需要输入字段

jquery - 默认在 Silverstripe 的 ModelAdmin 中显示 filter-form

javascript - 如何在 jQuery 中移动 HTML 元素?

facebook - 如何通过 Facebook Graph API 从带有附件的页面发送直接消息?

javascript - 通过类名称获取元素位置