1

我有一个 jsp 页面 home.jsp,它分为两个框架 Header 和 Content。在我的内容框架中,我有一个链接,它调用这样的 servlet

<a href="downloadAttach">download</a>

JavaScript 函数 doloadAttach 具有以下行:

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 卸载并且我被带到谷歌,并且弹出消息没有显示。如果我执行完全相同的步骤并刷新或关闭浏览器,则会出现消息。我还尝试在 servlet 中设置标头以进行缓存控制,但没有任何区别。我用的是ie8

4

1 回答 1

0

我发现这个 Jquery 适用于我的类似问题:

$(window).bind('beforeunload', function() { 
 return "sure you want to go away";
});
于 2014-08-13T21:04:42.633 回答