【问题标题】:JS window.close() let IE hangJS window.close() 让IE挂掉
【发布时间】:2010-05-26 09:06:52
【问题描述】:

为了不让你感到厌烦,我正在编写一个 asp.net 应用程序,它必须在新的浏览器窗口中打开一些页面。

我设法使用以下代码在回发中打开它们(不要问为什么,我只需要这样做):

script = String.Format(@"window.open(""{0}"", ""{1}"");", url, target);
ScriptManager.RegisterStartupScript(page, typeof(Page), "Redirect", script, true);

现在我有了新窗口,每个窗口都有一个应该关闭它的按钮。我只有一个onclick="window.close()"(但是当我关闭浏览器时会提示我)或window.open('','_self','');window.close()(可怕,我同意,但这是我发现避免 JS 提示的唯一方法)

在 Firefox 上它运行良好,但在 IE7(我们客户的浏览器)上 2-3 次后我使用该按钮关闭窗口我无法打开其他窗口(在这两种情况下,有或没有 JS 提示) .使用上面的方法,它什么都不做,<a href="mypage.aspx" target="_blank">click me</a> 会打开一个新窗口,但在加载时挂起(它甚至不调用 Page_Load)。

可能是什么原因?我该如何解决这个问题?

谢谢。

编辑:

我忘了提到我在大多数页面中都使用 MS Ajax,这可能是迫使我在 window.close() 之前使用 window.open('','_self',''); 的原因 我不知道这是否也会导致 IE 挂起

【问题讨论】:

  • 这是<button> 还是<input>?可能是回发正在取消 window.close 操作。
  • 对不起,也许我解释得不是很好。不要专注于关闭部分,它有效,窗口关闭,我只是添加解释我的工作。问题是我成功关闭了 2-3 次后,我无法再打开任何窗口。
  • 我遇到了同样的问题。先生,您救了我,谢谢!

标签: asp.net javascript internet-explorer


【解决方案1】:

编辑:忽略它,它仍然会提示用户 - 抱歉!

关于关闭窗口的第一个问题,您尝试过吗:

self.close();

虽然不太确定挂起的问题,但我使用 window.open() 并且从未在 IE7 中遇到过问题。

【讨论】:

  • 我试过 self.close(), window.close(), top.close(), .close() 但结果是一样的。也许我应该在这个问题上添加一个事实,即我也在使用 MS Ajax ..
【解决方案2】:

我终于找到了解决办法:

在属性分配中缺少return false;

现在它与 "window.open('','_self','');window.close();return false;" 完美配合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    相关资源
    最近更新 更多