卸载时关闭浏览器窗口

时间:2012-10-03 08:33:11

标签: javascript jquery asp.net html cross-browser

我有MyPage.aspx html页面(使用ASP.Net生成)。当用户尝试离开此页面时,我需要关闭窗口 - 用户不应该返回或导航到另一个页面。

当我在window.onbeforeunload事件中使用window.close()时,它会要求对用户进行确认。 “您正在查看的网页正在尝试关闭窗口。你想关闭窗口吗?“点击”否“,用户可以逃避关闭尝试。有没有办法强行关闭窗口而不向用户提供选项?

参考:

  1. How can I close a browser window without receiving the "Do you want to close this window" prompt?
  2. Html javascript to open new window and close current window
  3. "Unknown Exception" when cancelling page unload with "location.href"
  4. Display confirmation popup with JavaScript upon clicking on a link

3 个答案:

答案 0 :(得分:3)

您可以像这样“欺骗”浏览器:

window.onbeforeunload = function() {
    window.open('', '_self', '');
    window.close();
}

它似乎适用于chrome / safari / ie / ff:http://jsbin.com/olijig/1

Firefox似乎很顽固,但在FF中可能还有另一种方法可以做同样的事情。

我应该说这种技术绝不是标准的,我根本不推荐它,而且除了firefox 之外,这个代码可能会破坏许多浏览器

<强>更新

它实际上也适用于Firefox(最新版本),但不适用于旧版本(我尝试过3.6.1)。您需要进行更多测试以确认浏览器兼容性。

答案 1 :(得分:1)

不,你不能。用户必须始终能够控制浏览器中发生的任何事情。

答案 2 :(得分:1)

我对此并不乐观,但我相信如果你有一个窗口打开另一个窗口,父窗口可以关闭那个子窗口。拥有一个在单独的窗口中打开您的应用程序的登录页面是否可行,然后可以通过javascript关闭窗口?有人可能会详细说明,因为我自己没有这样做。