Aquí podría ser tu PUBLICIDAD


Cómo llamo javascript justo antes de una redirección de respuesta

votos
3

Intento ejecutar algunas secuencias de comandos java justo antes de redirigir una página pero no se puede ejecutar. Cuando comento el Response.Redirect, todo funciona bien, pero va en contra de los requisitos particulares. ¿Alguna idea sobre cómo implementar esta funcionalidad?

        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)  
Publicado el 12/03/2009 a las 18:39
fuente por usuario TonyNeallon
En otros idiomas...        العربية       

5 respuestas

votos
12

Su problema es que Response.Redirect redirige la respuesta (...) antes de que se envíe algo al cliente. Entonces, lo que obtiene el cliente es una respuesta de Google en lugar de su servidor.

Para escribir algo de javascript en la página y hacer que se ejecute antes de enviar el cliente a Google, tendrá que hacer su redirección en javascript después de la alerta.

   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
Respondida el 12/03/2009 a las 06:44
fuente por usuario Joel


Aquí podría ser tu PUBLICIDAD


votos
3

El cliente no tiene la oportunidad de cargar. Intenta redirigir desde el lado del cliente:

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
Respondida el 12/03/2009 a las 06:43
fuente por usuario Chris Van Opstal

votos
2

Si desea ejecutar algún javascript antes de redireccionar, tendrá que hacer la redirección en javascript y no en 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
Respondida el 12/03/2009 a las 06:43
fuente por usuario Darin Dimitrov

votos
1

No funciona:

string sScript = "<script language='javascript'>alert(\"" + Alertstr + "\");  alert('Record has been Updated Successfully'); </script>";
ClientScript.RegisterStartupScript(typeof(Page), "alert", sScript);
response.redirect("LandingPage.aspx");

Trabajando:

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);
Respondida el 09/09/2010 a las 06:55
fuente por usuario siva

votos
0

Si usa Response.Redirect, en realidad envía una respuesta 3XX al navegador que hace que envíe una solicitud a la URL en el redireccionamiento. En realidad, no cargará / renderizará ningún dato contenido con la respuesta (en realidad, no creo que se envíe ningún dato). Si desea que se redireccione después de que se cargue la página, puede incluir un encabezado de actualización META que redirige una cierta cantidad de tiempo después de la carga o utilizar javascript do a la redirección al final de la secuencia de comandos.

Respondida el 12/03/2009 a las 06:47
fuente por usuario tvanfosson