JS window.close()让IE挂起

时间:2010-05-26 09:06:53

标签: asp.net javascript internet-explorer

因为我不会厌烦你,我正在编写一个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.open('','_self','');之前使用window.close()的原因 我不知道这是否也会导致IE挂起

2 个答案:

答案 0 :(得分:0)

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

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

self.close();

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

答案 1 :(得分:0)

我终于找到了解决方案:

在属性分配中缺少return false;

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