2

在重定向到另一个页面之前,我尝试使用 JavaScript 打开一个弹出窗口。

我写了这段代码:

ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "abc", "window.open('http://yahoo.com','2','resizable=yes,directories= no,menubar=no,top=null,left=00, width=100,height=100')", true);
Response.Redirect(p.Url);

但它只是一个重定向并且不会打开一个弹出窗口。

如何在用户用户重定向到另一个页面之前打开一个弹出窗口?

4

2 回答 2

3

如果您正在执行诸如打开弹出窗口或窗口...之前之类的操作response.redirect();,它将无法正常工作。如果您想在打开弹出框后重定向到任何页面,请确保重定向应该只用 Javascript 而不是 C#

这行不通

Response.Write("<script language='javascript'>alert('hello')</script>");  
Response.Redirect("About.aspx"); <br>

这将起作用

Response.Write("<script language='javascript'>alert('hello');
window.location.href='About.aspx';</script>");

或者

if (!ClientScript.IsStartupScriptRegistered("alert"))
{ 
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert",     "alertMe();window.location.href='About.aspx';", true);
}

这样我们也可以调用外部 JS 文件

 Page.ClientScript.RegisterStartupScript(this.GetType(),    "callJS", 
 "&alt; script language='javascript' src='sample.js' &glt;  ");
于 2012-11-16T13:53:33.180 回答
0

如果您使用的是 ScriptManager.RegisterStartupScript,您应该将您的 javascipt 代码插入到您的 aspx 页面顶部(在<head>标签中)

对我来说是一个工作示例;

ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "abc", "<script>OpenWin();</script>", false);
Response.Redirect(p.Url);

在 aspx 头标签中;

<script type="text/javascript">

 function OpenWin() {
        window.open('http://yahoo.com', '2', 'resizable=yes,directories= no,menubar=no,top=null,left=00, width=100,height=100');
   }

</script>

如果此代码不起作用,另一种方法;您可以使用 javascript 进行重定向。像这样 ;

window.location.href="p.Url";

但是通过这种方式,您应该将 p.Url 值传递给 javascript。您可以通过多种方式执行此操作(隐藏字段、会话等)

于 2012-06-24T10:28:55.250 回答