1

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

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

参考:

  1. 如何关闭浏览器窗口而不收到“您要关闭此窗口”提示?
  2. Html javascript打开新窗口并关闭当前窗口
  3. 使用“location.href”取消页面卸载时出现“未知异常”
  4. 单击链接时显示带有 JavaScript 的确认弹出窗口
4

3 回答 3

3

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

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

它似乎在 chrome/safari/ie/ff 中工作:http: //jsbin.com/olijig/1

Firefox 似乎很顽固,但在 FF 中可能还有另一种方法可以做到这一点。

我可能应该说这种技术绝不是标准的,我根本不推荐它,而且这段代码可能会在许多浏览器中中断除了火狐.

更新

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

于 2012-10-03T08:55:36.907 回答
1

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

于 2012-10-03T08:35:41.107 回答
1

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

于 2012-10-03T08:35:53.727 回答