我已经构建了一些共享图标,基本上似乎正在发生的事情是 bitly api 调用需要很长时间,所以第一次点击代码失败 - 但如果我再次点击它一切正常。
预期的行为是,当用户单击图标(twitter 或 facebook)时,会打开一个弹出窗口,其中会打开正确的社交网络共享窗口。
这是我的代码:
$j(document).ready(function() {
var isShortened = false;
function bit_url(url) {
var url = url; var username = "account";
var key = "xxxxxxxxxxxxxxxxxxxxxxxxx";
var fbShareURL = 'http://www.facebook.com/sharer/sharer.php';
var twShareURL = 'http://twitter.com/intent/tweet';
var articleTitle = encodeURIComponent('${title?html}');
$j.ajax({
url:"https://api-ssl.bit.ly/v3/shorten",
data:{longUrl:url,apiKey:key,login:username},
dataType:"jsonp",
success:function(v) {
var bit_url = v.data.url;
$j("#facebookBtn").attr("href", fbShareURL + '?u=' + encodeURIComponent(bit_url) + '&t=' + articleTitle);
$j("#twitterBtn").attr("href", twShareURL + '?text=Check out ' + articleTitle +' - &url=' + encodeURIComponent(bit_url) + '&via=account');
}
});
}
$j('.share-btn').click(function() {
var btnClicked = $j(this);
var url = '';
if (isShortened == false){
bit_url('${url?html}');
setTimeout(function() {
url = $j(btnClicked).attr('href');
window.open(url,'share','width=665, height=350, scrollbars=no');
}, 800);
} else {
url = $j(btnClicked).attr('href');
window.open(url,'share','width=665, height=350, scrollbars=no');
}
isShortened = true;
return false;
});
});
任何想法将不胜感激。