我有一个jsp页面home.jsp,它分为两个框架标题和内容。 在我的内容框架中,我有一个调用这样的 servlet 的链接
<a href="downloadAttach">download</a>
JavaScript 函数 dowloadAttach 有以下行:
window.location="RetrieveFile.display";
RetrieveFile 是一个 servlet,它从共享位置获取文档并将其写入输出流,以便我可以选择保存/取消/打开附件
此外,内容框架中的所有页面都有以下代码行,以确保该页面不会在浏览器中缓存:
window.onbeforeunload=function(){window.location.replace("<%= request.getcontextPath()%>/home.jsp")}
此外,我的 home.jsp 中有以下脚本,以确保每当卸载 home.jsp 时都会显示警告消息。脚本是这样的:
window.onbeforeunload=function(){return "sure you want to go away"};
现在假设我在google,然后转到home.jsp,然后单击下载附件链接。附件已正确下载。之后,我在 jsp 上执行任何导致页面刷新的操作,例如提交表单或关闭表单,然后按浏览器返回,我的 home.jsp 卸载,我被带到 google,并且弹出消息不会显示。如果我执行完全相同的步骤并刷新或关闭浏览器,则会出现该消息。我还尝试在 servlet 中设置 header 以进行缓存控制,但没有任何区别。我使用的是ie8
最佳答案
我发现这个 Jquery 适用于我的类似问题:
$(window).bind('beforeunload', function() {
return "sure you want to go away";
});
关于javascript - 下载附件后 onbeforeunload 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14128716/