我尝试使用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);
但它只是一个重定向,弹出窗口无法打开。
如何在用户用户重定向到其他页面之前打开弹出窗口?
答案 0 :(得分:2)
如果您在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>");
OR
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; ");
答案 1 :(得分: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。你可以做很多事情,(隐藏字段,会话等)