防止网页被关闭或导航离开

时间:2011-11-07 19:10:11

标签: javascript browser web

不,我不是想制作恼人的弹出窗口。我有一个简单的网页,它是一个基于Web的SOA工具控件,允许我们的客户移动访问我们放在他们位置的系统。如果用户在关闭窗口本身之前不使用关闭服务端通信隧道的“断开”按钮关闭网页,则系统将保持活动状态,直到服务超时。这听起来可能不是很糟糕,但是在高优先级的情况下,内部员工使用相同的通信隧道,如果由于客户的Web服务将其绑定而无法访问它,那就是非常糟糕的事情。

因此,我想阻止用户通过除“点击断开”之外的任何其他方式导航离开页面或关闭标签页或浏览器实例。我确信这是可能的,我只需要朝着正确的方向轻推。解决方案必须尽可能与浏览器无关,尤其是移动浏览器。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用onbeforeunload处理程序。但它并不总是被抛出。

使用jQuery查看小提琴:http://jsfiddle.net/maniator/qpK7Y/
请参阅纯javascript小提琴:http://jsfiddle.net/maniator/qpK7Y/10/

答案 1 :(得分:0)

您无法通过右上角的关闭按钮关闭窗口。您可以强制子窗口像这样保持焦点:

声明一个全局变量:

var childWindow;

将变量分配给窗口对象

childWindow = window.open("...", "...");
if (childWindow){
    childWindow.focus();
}

要强制关注子窗口,请在父级上使用onfocus事件:

focusChildWindow = function(){
    if (childWindow != null){
        childWindow.focus();
    }
}

<body onfocus="focusChildWindow();" ...>