我的webapp可以“单独”运行,也可以通过另一个webapp在模态窗口中打开......
当用户关闭窗口时,我必须清理一些数据,以便抓住关闭窗口的事件,然后重定向到这样的某个动作:
<script language="JavaScript">
window.onbeforeunload = function() {
if ((window.event.clientX < 0) || (window.event.clientY < 0) || (window.event.clientX < -80) || window.event.altKey == true) { // close button or ALT+F4
window.location.assign('<%=request.getContextPath()%>/borraSemaforo.do');
}
};
</script>
当webapp在非模态窗口中运行但不在模态窗口内运行时,此方法有效。
我无法控制在模态窗口中打开我的应用程序,因此我无法对窗口的打开方式进行任何更改...
有什么想法吗?
答案 0 :(得分:1)
对于应用程序在模态窗口中加载的情况:
一种方法是:
您可以在onbeforeunload事件处理程序的窗口中创建隐藏的iframe。 在iframe中放置了动作的URL。
另一种方式 -
创建一个指向url路径的小模态窗口。在该url路径的响应中发送一个小的javascript来关闭模态窗口。
打开iframe的代码 - 基本js
var i = document.createElement('iframe');
i.style.display = "none";
var d = new Date();
i.id = d.getTime();
i.onload = function(){
/*Task complete*/
alert('frame loaded')}
i.name = "exp" + d.getTime();
i.src = window.location.protocol + "//" + window.location.host + '<path>';
document.body.appendChild(i);