我有一个链接到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