从代码隐藏中打开新窗口

时间:2009-05-22 11:03:37

标签: c# asp.net javascript code-behind

如果选择了特定的单选按钮,我需要在回发后的代码隐藏中打开一个新窗口。

有没有办法做到这一点?

谢谢。

5 个答案:

答案 0 :(得分:4)

您可以使用RegisterStartupScript发送一个window.open脚本,以便在页面加载后运行。

但是,这会导致大多数弹出窗口阻止程序妨碍你。

答案 1 :(得分:2)

认为这应该有用; - )

添加一些javascript到您的单选按钮,在发回之前打开一个新的空白窗口。这使得它弹出窗口阻止程序不会阻止你的弹出窗口,因为它是为了响应用户点击而打开的。有关如何执行此部分,请参阅this link

然后,允许回发正常发生并在页面加载时,注册启动脚本以告知您现有的窗口转到新的URL。

 String script = "window.open('popupPage.aspx', 'myPopup')";
 ScriptManager.RegisterStartupScript(Page, Page.GetType(), "someId", script, true);

请注意,在javascript中,当您致电

 window.open(url, 'myPopup')

如果已存在具有该名称的窗口,它将返回该窗口而不是创建新窗口...因此您的弹出窗口不会被阻止!

答案 2 :(得分:1)

您需要运行javascript on postback

答案 3 :(得分:0)

RegisterStartupScript的简单示例:

RegisterStartupScript("id1", "<script type=\"text/javascript\">alert(\"I'm from JavaScript.\");</script>");

答案 4 :(得分:0)

新窗口可能非常粗略,具体取决于您需要提供的内容,如果愿意,可以考虑使用窗口弹出窗口。你会避免那种弹出窗口拦截器。如果您能提供更多详细信息,我们可以提供更好的答案。