我正在尝试在页面重定向之前运行一些java脚本,但它无法运行。 当我注释掉Response.Redirect时,一切正常,但这违背了特定的要求。有关如何实现此功能的任何想法?
Dim strscript As String = "<script>alert('hello');</script>"
If Not ClientScript.IsClientScriptBlockRegistered("clientscript") Then
ClientScript.RegisterStartupScript(Me.GetType(), "clientscript", strscript)
End If
Response.Redirect("http://www.google.com")
答案 0 :(得分:12)
您的问题是,在将任何内容发送回客户端之前,Response.Redirect会重定向响应(...)。因此,客户获得的是Google的响应,而不是来自您的服务器。
为了在页面上写一些javascript并在将客户端发送给Google之前执行它,您需要在警报后在javascript中进行重定向。
Dim strscript As String = "<script>alert('hello');window.location.href='http://www.google.com'</script>"
If Not ClientScript.IsClientScriptBlockRegistered("clientscript") Then
ClientScript.RegisterStartupScript(Me.GetType(), "clientscript", strscript)
End If
答案 1 :(得分:3)
客户端没有机会加载。尝试从客户端重定向:
Dim strscript As String = "<script>alert('hello');window.location.href("http://www.google.com");</script>"
If Not ClientScript.IsClientScriptBlockRegistered("clientscript") Then
ClientScript.RegisterStartupScript(Me.GetType(), "clientscript", strscript)
End If
答案 2 :(得分:2)
如果你想在重定向之前执行一些javascript,你需要在javascript中进行重定向而不是在ASP.NET中。
Dim strscript As String = "<script>alert('hello'); window.location.href='http://www.google.com';</script>"
If Not ClientScript.IsClientScriptBlockRegistered("clientscript") Then
ClientScript.RegisterStartupScript(Me.GetType(), "clientscript", strscript)
End If
答案 3 :(得分:1)
不工作:
string sScript = "<script language='javascript'>alert(\"" + Alertstr + "\"); alert('Record has been Updated Successfully'); </script>";
ClientScript.RegisterStartupScript(typeof(Page), "alert", sScript);
response.redirect("LandingPage.aspx");
工作:
string sScript = "<script language='javascript'>alert(\"" + Alertstr + "\"); alert('Record has been Updated Successfully'); window.location.href = 'LandingPage.aspx'; </script>";
ClientScript.RegisterStartupScript(typeof(Page), "alert", sScript);
答案 4 :(得分:0)
如果您使用Response.Redirect,它实际上会向浏览器发送3XX response,这会导致它向重定向中的URL发送请求。它实际上不会加载/呈现响应中包含的任何数据(实际上我认为不会发送任何数据)。如果您希望在页面加载后重定向,则可能需要包含一个META refresh header,在加载后重定向一定时间,或者在脚本末尾使用javascript do重定向。