【发布时间】:2017-12-15 21:05:00
【问题描述】:
我在我的项目中使用onbeforeunload。但是有一个部分,用户可以单击链接并下载报告。在触发window.location 之前,我设置了window.onbeforeunload = null,这样用户就不会收到带有离开或留下问题的警报/确认框。一旦他们点击报告并下载文件,如果他们尝试关闭浏览器,就会出现问题onbeforeunload 不会再次触发。下载报告后如何触发onbeforeunload?这是我的功能示例:
function getReport(){
var fileName = $(this).prop('id'),
param = 'rptFile=' + fileName;
try{
window.onbeforeunload = null;
window.location = '/'+pathname+'/APPS/entry.cfm?idx=5&' + param;
}catch(err){
alert("An error occurred retrieving the file.");
}
};
我正在重新加载entry.cfm 的主页有document.ready 功能,而我有onbeforeunload 功能。我预计一旦使用window.location 下载报告,onbeforeunload 将再次触发。所以我不确定我是否做错了什么,或者这对于 JS 是不可能的。这是entry.cfm 的例子:
$(document).ready(function() {
window.onbeforeunload = function () {
return 'Are you sure you want to leave?';
}
});
如果有人知道如何再次触发 onbeforeunload,请告诉我。谢谢!
【问题讨论】:
-
在 cookie 或 localstorage 中放置一些标志,以了解用户何时下载报告。如果确实如此,则再次附加 onbeforeload
-
@KresimirPendic 这就是我想知道如何再次附加onbeforeunload?我希望如果我在 document.ready 中有它会成功。
-
This may help you,另外,为什么不重新加载窗口,而是打开一个新窗口来下载报告或使用 iframe?
标签: javascript jquery onbeforeunload