我用Facebook Open Graph Shares实现了一个共享计数器,代码如下:
<script>
function GetShareTargetCMS(){
var token = 'XXXXXXXXXXXXXXX|YYYYYYYYYYYYYYYYYYYY';
$.ajax({
url: 'https://graph.facebook.com/',
dataType: 'jsonp',
type: 'POST',
cache: false,
data: {access_token: token, id: "http://url-to-share", scrape:true },
success: function(data){
console.log(data.share);
if(typeof data.share != 'undefined'){
$('.results_share').empty().html('<span>'+data.share.share_count+'</span>');
}else{
$('.results_share').empty().html('<span>0</span>');
}//else
}//success
});
}//GetShareTargetCMS
//Get Condivisioni
$(document).ready(function() {
GetShareTargetCMS();
});
//Get Condivisioni
//Share trigger dialog
document.getElementById('shareBtn').onclick = function() {
FB.ui({
method: 'share',
mobile_iframe: true,
href: "http://url-to-share",
}, function(response){ GetShareTargetCMS(); });
}
</script>
默认情况下,文档就绪中调用的函数会在潜水中打印当前页面的共享计数器。如果用户单击.shareBtn,则打开共享对话框。当共享成功时,我重新调用共享功能来重新加载和更新共享计数。我不知道原因,但柜台不爽。刷新计数器的唯一方法是重新加载页面。有什么建议?
我试过了:
答案 0 :(得分:0)
尝试在刷新共享计数之前设置超时
document.getElementById('shareBtn').onclick = function() {
FB.ui({
method: 'share',
mobile_iframe: true,
href: "http://url-to-share",
}, function(){setTimeout(function(){GetShareTargetCMS()},1000) });
}