1

我已经构建了一些共享图标,基本上似乎正在发生的事情是 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; 
}); 
});

任何想法将不胜感激。

4

0 回答 0