无法在 VBScript 中使用 Response.Write

Unable to use Response.Write in VBScript

我支持旧的经典 ASP 应用程序,我读到我们在 <% %> 中编写的代码是 VBScript 并且 <% Response.Write "VBScript" %> 工作正常,但是当我写入以下格式,Response.Write 无效

<SCRIPT LANGUAGE="VBScript">
Response.Write "VBScript"
</SCRIPT>

另外 Response.Write 未在按钮单击事件中执行

 <SCRIPT LANGUAGE="VBScript" >

    function B3_OnClick()

     FORM1.T3.style.backgroundColor = "white"
     FORM1.T4.style.backgroundColor = "white"
     FORM1.T3.readOnly ="false"
     FORM1.T4.readOnly ="false"
     FORM1.style.backgroundColor = "white"
     Response.Write("Hello World")

    End function 

   </SCRIPT>

谁能解释一下为什么?在那种情况下是否有 Response.Write 的替代品..?提前致谢

这是因为您在 <script> 标签中缺少 runat="Server" 属性。

<SCRIPT LANGUAGE="VBScript" runat="Server">
Response.Write "VBScript"
</SCRIPT>

请记住,通过 Classic ASP 访问的 VBScript 发生在 响应发送到客户端之前。对于诸如单击客户端上的按钮以影响服务器端代码之类的操作,它必须往返于服务器。如果您想让服务器端代码影响客户端代码,您可以在将服务器响应返回给客户端之前注入代码。

<SCRIPT LANGUAGE="VBScript" >

 function B3_OnClick()

  FORM1.T3.style.backgroundColor = "white"
  FORM1.T4.style.backgroundColor = "white"
  FORM1.T3.readOnly ="false"
  FORM1.T4.readOnly ="false"
  FORM1.style.backgroundColor = "white"
  MsgBox "<% Response.Write("Hello World") %>"

 End function 

</SCRIPT>

有用的链接

  • Answer to what's the difference between <% %> and in classic asp?