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>

现在我在开始正文标记之前添加了同样取自 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 - 如何禁用SSL验证nodejs Loopback Request Plugin

javascript - 我应该如何将 Svelte Reactivity 与 DOM getElementById 一起使用?

Javascript 和正则表达式 : remove space after the last word in a string

javascript - 从 html 中删除完整的 href 链接标签

javascript - 虽然 Loop 无法正常工作 - 它有时会跳过

javascript - 针对引荐来源网址字符串进行正则表达式检查

java - 如何使用 java 查询 Facebook 事件

javascript - Protractor Zip 文件上传

php - 如何获得长期的 Facebook session ?

java - python 服务器上的 API 参数中提供的 appsecret_proof 无效