Come on, we've all done it. Tried to send a MsgBox from ASP. And received this lovely message:
Microsoft VBScript runtime (0x800A0046) Permission denied: 'MsgBox' ' or Microsoft VBScript runtime (0x800A0046) Permission denied: 'Inputbox'
|
MsgBox and InputBox are client-side interaction element. To work in an ASP environment, someone would have to be sitting at the web server terminal day and night, clicking OK on every alert that comes up. Yes, I know, that's exactly the scenario you'd like to have when debugging (and are used to with traditional client-server or stand-alone applications). However, ASP simply doesn't allow it. Here are a few code samples that show how to use a client-side alert (recommended for browser reach) or MsgBox. These bring up a couple of other answers too, such as how you can nest script tags and embed single- and double-quotes in a string. Plenty of languages for everyone!
Server-Side JavaScript -> Client-Side JS Alert
<script language=JavaScript runat=Server> var msg = "Umm, I guess, EOF?"; Response.Write("<" + "script>alert('" + msg + "');"); Response.Write("<" + "/script>"); </script> |
Server-Side VBScript -> Client-Side JS Alert
<% msg = "Umm, I guess, EOF?" Response.Write("<" & "script>alert('" & msg & "');") Response.Write("<" & "/script>") %> |
Server-Side JavaScript -> Client-Side VBS MsgBox
<script language=JavaScript runat=Server> var msg = "Umm, I guess, EOF?"; Response.Write("<" + "script language=VBScript>"); Response.Write("MsgBox \"" + msg + "\"<" + "/script>"); </script> |
Server-Side VBScript -> Client-Side VBS MsgBox
<% msg = "Umm, I guess, EOF?" Response.Write("<" & "script language=VBScript>") Response.Write("MsgBox """ & msg & """<" & "/script>") %> |