Estoy trabajando con una página clásica de ASP VBScript que consulta los detalles de la ciudad postal para un código postal del Reino Unido dado como parámetro, y he estado agregando código adicional para detectar situaciones de error, por ejemplo:
También estamos en el proceso de actualizar nuestro sitio web a Google Chrome y MS Edge, por lo que necesitamos usar JavaScript siempre que sea posible para las secuencias de comandos. Me gustaría decirle al usuario que el código postal está en blanco usando la función de alerta () y yo estaba pensando que la mejor manera de hacer esto sería la siguiente:
respuesta.escribir("<SCRIPT language=" & chr(34) & "javascript" & chr(34) & ">alert('Por favor ingrese un código postal!');</SCRIPT>")
Cuando intento esto, obtengo uno de dos resultados en el cuadro de texto de entrada en la página donde se guarda el resultado:
También intenté usar las etiquetas %> y %< alrededor de una etiqueta <SCRIPT>, que es probablemente lo que me da el segundo resultado (estoy escribiendo esto en mi computadora personal y el entorno de prueba está en mi computadora de trabajo).
He estado viendo un par de otras preguntas sobre StackOverlow y búsquedas en Internet:
¿Hay algo que me haya perdido ya que me gustaría usar alert() y la función MsgBox() no funciona, lo que descubrí cuando lo probé antes?
Gracias @user692942 - definitivamente fue útil: lo que hice al final fue agregar lo siguiente a la página ASP:
if (strPostcode = "") then %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <BODY> <SCRIPT type="text/javascript"> alert("Please enter a postcode!"); </SCRIPT> </BODY> </HTML> <% response.end end ifY esto está funcionando como yo quería, ¡así que gracias por su orientación! :)
Depende completamente de cómo haya estructurado la página ASP, pero personalmente, es mucho más fácil romper los bloques de código ASP para trabajar con HTML en lugar de usar Response.Write .
<% @Language="VBScript" CodePage=65001 %> <% Response.Charset = "UTF-8" Response.CodePage = 65001 'ASP Code here %> <!doctype html> <html> <head> <title>Test Page</title> </head> <body> <% 'ASP Code here %> <script type="text/javascript"> alert("Please enter a postcode!"); </script> </body> </html> Para que esto funcione, debe asegurarse de que los bloques de código ASP estén encapsulados correctamente en las etiquetas <% y %> .
La otra opción es usar Response.Write() pero puede volverse difícil de manejar.
<% @Language="VBScript" CodePage=65001 %> <% Response.Charset = "UTF-8" Response.CodePage = 65001 'ASP Code here Call Response.Write("<!doctype html>" & vbCrLf) Call Response.Write("<html>" & vbCrLf) Call Response.Write(" <head>" & vbCrLf) Call Response.Write(" <title>Test Page</title>" & vbCrLf) Call Response.Write(" </head>" & vbCrLf) Call Response.Write(" <body>" & vbCrLf) 'ASP Code here Call Response.Write(" <script type=""text/javascript"">" & vbCrLf) Call Response.Write(" alert(""Please enter a postcode!"");" & vbCrLf) Call Response.Write(" </script>" & vbCrLf) Call Response.Write(" </body>" & vbCrLf) Call Response.Write("</html>") %>También debe buscar problemas con el escape de comillas dobles literales en las cadenas al duplicarlas.
Sin embargo, existe otro enfoque que básicamente toma lo mejor de ambos mundos para construir una página muy estructurada.
<% @Language="VBScript" CodePage=65001 %> <% Option Explicit Response.Charset = "UTF-8" Response.CodePage = 65001 'Entry point for the page logic. Call init() Sub init() 'Initiate any variables from query string / form posts here. Call page() End Sub Sub page() %> <!doctype html> <html> <head> <title>Test Page</title> </head> <body> <% 'ASP Code here %> <script type="text/javascript"> alert("Please enter a postcode!"); </script> </body> </html> <% End Sub %><% if (your ASP code) then %> <script type="text/javascript"> alert('Please enter a postcode!'); </script> <% end if %>