javascript - 下载附件后 onbeforeunload 不起作用

标签 javascript

我有一个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/

相关文章:

javascript - 如何在 React 中返回多个图像元素

javascript - 有没有一种方法可以将来自 React 中 API 的响应值映射到一些预定值,然后确定呈现的内容?

javascript - 我如何分离出 JavaScript 的常量?

javascript - postman :如何在测试中迭代我的 JSON 文件?

UNITY 游戏引擎的 Javascript 帮助

javascript - 在圆圈周围绘制形状

JavaScript 拆分而不丢失字符

asp.net - 验证后将焦点设置为验证摘要控制时出现问题

javascript - 按下 CTRL 捕获 onclick 事件

javascript - 如何监听要加载的特定元素?