我有以下代码,当它检测到服务器上存在该文件时,它会弹出打开一个 jquery mobile 对话框,并使用指向该文件的链接更新该对话框的内容。它每秒检查文件是否存在并尝试最多 10 次。
代码工作正常,但是,当用户单击对话框中的实际链接来下载文件时,没有任何反应。但是,如果刷新浏览器,文件就会被下载。显然,我希望用户只需单击一次链接即可开始下载。
我确信我使用 setTimeout()
的方式使事情变得困惑,但我不确定还可以尝试什么。 Javascript/jquery 不是我的强项。谢谢!
function download_notify(grp_name, token) {
$('#download_dialog_open_button').click();
exists(0);
function exists (try_count) {
try_count = try_count + 1;
$.ajax ( {
type: 'HEAD',
url: '/files/' + grp_name + '_' + token + '.csv',
async: true,
error: function (try_count) {
if (try_count < 10)
{setTimeout(exists, 1000);
} else {
return;
}
},
success: function () {
$('#download_dialog h1.ui-title').html('File ready');
$('#download_dialog .ui-content div').html('<a href="/files/' + grp_name + '_' + token + '.csv">Download</a>');
}
})
}
}
最佳答案
您尝试过rel="external"
吗?,即:
$('#download_dialog .ui-content div').html('<a rel="external" href="/files/' + grp_name + '_' + token + '.csv">Download</a>');
关于javascript - 文件创建后生成 HTML 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920727/