私はいくつかの共有アイコンを作成しましたが、基本的には、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;
});
});
どんな考えでも大歓迎です。