gpt4 book ai didi

javascript - Facebook 分享弹出按钮在第一次点击后停止工作

转载 作者:行者123 更新时间:2023-12-03 08:47:24 24 4
gpt4 key购买 nike

我的页面上有一个 Facebook 按钮。它调用共享弹出窗口。

问题是该按钮仅在第一次单击时起作用。第二次、第三次点击没有任何作用。我总是需要刷新页面。

我是新手。你能帮我解决这个代码吗?

谢谢。

    <div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'zzzzzzzzzz',
status : true,
cookie : true,
xfbml : true
});

FB.ui(
{
method: 'feed',
name: 'Bitcoin Catcher Faucet & Rotator',
link: 'http://bitcoin-catcher.com',
picture: 'http://bitcoin-catcher.com/wp-content/uploads/2015/08/icon.png',
caption: 'Only 1000+ Rewards Faucet & Rotator',
description: 'Earn FREE Bitcoins Easier & Faster! Only 1000+ Rewards per Claim!'
},

function(response) {
if (response && response.post_id) {
unhide('claim', '');
} else {
}
}
);

};

function fb_callout() {

(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
}
</script>

<img alt="Share on Facebook" src="http://bitcoin-catcher.com/wp-content/uploads/2015/09/facebook-share-button.png" width="180" onclick="fb_callout();" style="cursor: pointer;" />

最佳答案

FB.ui 的调用应该在 fbAsyncInit 外部。将其放置在“共享”按钮的单击事件处理程序中。

在您的代码示例中,每次点击都会加载 FB JS SDK这不是你想要的。

即使它第一次工作,因为 SDK 在加载后调用 fbAsyncInit ,而在您的示例中,又错误地通过 FB.ui 调用显示提要对话框,重新加载 SDK 会破坏后续调用的 API。 不应每次都加载 SDK。

您想要的是在页面加载时仅加载一次 SDK(它是异步的,因此不会阻止浏览器),然后为调用 FB.ui 的按钮分配一个点击处理程序。

它看起来类似于下面的内容

<body>
<img alt="Share on Facebook" onclick="fb_callout();" />

<script>
// Handler for click event
function fb_callout() {
FB.ui({...}, function(response) {});
}

// This is called when the SDK js file is loaded by the browser
window.fbAsyncInit = function() {
FB.init({
appId : 'zzzzzzzzzz',
status : true,
cookie : true,
xfbml : true
});
}

// This loads the FB SDK js
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
</body>

关于javascript - Facebook 分享弹出按钮在第一次点击后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32825949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com