我有一個鏈接到Tumblr共享窗口小部件,並且需要在它打開之前附加一些查詢字符串參數(點擊鏈接觸發)。但是,鏈接在添加這些參數之前打開,我認爲這是因爲它需要幾秒鐘 - 我要在頁面上發送圖像以在imgur上託管並返回該URL。只有在執行某些事件後才能在鏈接中打開href
有什麼辦法可以延遲新鏈接被打開,直到我的新圖像url返回後?我試過使用e.preventDefault();
和return false;
,但沒有任何運氣。
我的HTML是:
<button id='tumblrshare'>tumblr</button
$('body').on('click','#tumblrshare',function(e){
var svg = $("#svg")[0];
svg.toDataURL("image/png", {
callback: function(img) {
var img = img.replace("data:image/png;base64,", "");
var imgurTitle = $("meta[property='og:title']").attr("content");
$.ajax({
url: 'https://api.imgur.com/3/image',
headers: {'Authorization': 'Client-ID **********'},
type: 'POST',
data: {'image': img, 'type': 'base64', 'title': imgurTitle},
success: function(result) {
imageURL = result.data.link;
window.location = 'https://www.tumblr.com/widgets/share/tool?canonicalUrl=http://www.example.com&caption=mycaption&posttype=photo&content=' + imageURL;
},
error: function(){
console.log('error');
}
}); //ajax
}//callback
});//svg
}); //tumblrshare
請幫助!
默認行爲,爲什麼不使用'$(」 #tumblrshare')...'給b egin與?這個JS何時執行? –
我可以,這是一回事。這只是一個加載在頁面底部的js文件。 – bjorkland