因为我不会厌烦你,我正在编写一个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挂起
答案 0 :(得分:0)
编辑:忽略它,它仍然会提示用户 - 抱歉!
关于关闭窗口的第一个问题,您是否尝试过:
self.close();
虽然不太确定悬挂问题,我使用window.open()并且从未在IE7中遇到过问题。
答案 1 :(得分:0)
我终于找到了解决方案:
在属性分配中缺少return false;
。
现在它与"window.open('','_self','');window.close();return false;"
完美配合。