2012-10-03 48 views
1

我有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
+0

您可以通过解释为什么要阻止用户来回导航来改善问题。 –

+0

@Jack我正在尝试为网站手动实施LogOut功能 – Lijo

+1

可靠的跨浏览器解决方案可能很困难。您可以禁用页面的客户端缓存,使其无法从历史记录中导航回。 – HackedByChinese

回答

3

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

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

似乎在Chrome/Safari浏览器的工作/ IE/FF:http://jsbin.com/olijig/1

火狐似乎固执,但也有可能是另一种方式在FF中也是这样做的。

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

UPDATE

它实际上是在Firefox工程太(最新版本),而不是旧版本(我试过3.6.1)。您需要做更多的测试来确认浏览器的兼容性。

+0

+1为巫术:) –

+1

更新了答案和更多的浏览器信息 – David

1

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

1

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