【问题标题】:How can I close a browser/page using jQuery if the page was not opned using window.open()?如果页面不是使用 window.open() 打开的,如何使用 jQuery 关闭浏览器/页面?
【发布时间】:2013-04-17 15:00:29
【问题描述】:

我的网站中有一个注销事件,一旦用户点击注销,他们的 cookie 就会被清除,如果用户愿意,我还会显示一个链接以关闭页面或浏览器。

关闭浏览器的链接id是closeBrowser

这是我的jQuery 代码

$(document).ready(function() {
    $('#closeBrowser').click(function(){        
        window.close();
    });
});

我认为它不起作用,因为该页面不是用window.open() event 打开的。但是,我不确定。

用户点击该链接后如何关闭页面??

谢谢

【问题讨论】:

  • 那个“应该”工作得很好。因为window 已经暗示了当前窗口。你可以jsfiddle更多的代码吗?也许您的选择器中有错误?目前,很难说该代码看起来不错。
  • 附带说明,如果您正在运行 jQuery 1.3+(我认为),您可以轻松删除旧的、长的 `$(document).ready(function(){` && 替换它$(function() {
  • 您只能关闭您自己实际打开的窗口。出于明显的安全原因,您不能关闭不属于您的窗口。
  • 你应该在控制台上有一些东西吗?
  • @adeno 不正确。现在打开你的控制台并输入window.close() 然后运行。呵呵

标签: javascript jquery events window


【解决方案1】:

window.close()documentation 声明:

这个方法只允许被打开的窗口调用 通过使用 window.open 方法的脚本。如果窗户没有打开 通过脚本,JavaScript 控制台中出现以下错误: 脚本不能关闭不是由脚本打开的窗口。

【讨论】:

  • 在 FF 中确实如此,但在 IE 中,您可以使用window.opener = self; window.close();,这意味着必须有替代方法。或者再一次,IE 只是不关心安全性。大声笑
  • @SpYk3HH - 据我所知,没有其他浏览器可以让您使用 javascript 关闭窗口,除非您专门使用 javascript 打开这些窗口。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多