而不是直接链接到网站上下载的网站上,我们链接到一个页面,说:“感谢您下载”。该页面上有跟踪代码,因此我们知道有多少人下载了该文件。该页面使用显示的jQuery代码启动下载文件,这会在下载开始之前在页面加载后添加一个短暂延迟。下载位置具有内容处置标题,因此它始终在浏览器中正确下载,并且可以看到“谢谢下载”页面。这一切运作良好。自动下载行为和后退按钮问题
如果用户继续浏览此页面,然后回来,则会出现问题。下载再次触发。使用window.location.replace(href);
似乎不能解决它。
这个问题由于传递页面的CMS将其设置为立即过期而未被缓存这一事实而变得更加复杂。 (i)避免这个问题的方法; (ii)处理文件下载/感谢页面的更好方法?
jQuery代码
$(document).ready(function() {
$('a.autoDownload').each(function() {
setTimeout('navigateToDownload("' + $(this).attr('href') + '")', 4000);
});
});
function navigateToDownload(href) {
document.location.href = href;
}
我不明白这将如何解决他的问题? – Christian 2011-04-03 23:35:40
而不是替换浏览器的历史记录,它附加一个iframe,它将开始下载文件。因此按照后面的按钮功能按预期工作。 – Khez 2011-04-03 23:41:23
我不确定它是否可以正常工作,因为后退按钮加载表单缓存 - 因此生成的HTML。 – Christian 2011-04-04 06:32:51