为什么我的 JavaScript 警报没有显示?
Why is my JavaScript alert not displaying?
在一个我刚被要求修改的旧站点上,我添加了一些 VBScript(不熟悉它,只是想伪造它直到我成功),如下所示:
'determine whether this unit is a new business
currentYear = Year(Now)
SQLString = "Select NewBiz from MasterUnitsprojSales where CYear = " & currentYear & " and Unit = '" & Unit & "'"
adoRS.Open(SQLString, adoCon)
IsNewBusiness = TRUE 'default (if record not found)
If Not adoRS.EOF Then
IsNewBusiness = adoRS.Fields.Item(0).Value <> 0
End If
adoRS.Close()
ReturnMsg = "Made it to IsNewBusiness logic"
Response.Write("<script type=""text/javascript"">" & vbCrLf)
Response.Write("<!--" & vbCrLf)
Response.Write("alert ('" & ReturnMsg & "');" & vbCrLf)
Response.Write("-->" & vbCrLf)
Response.Write("</script>" & vbCrLf)
在我添加 "End If" 行之前它失败了 - 导航到那个页面给我一个错误信息。
添加 "End If" 后,错误消息消失了,但是 javascript 警报(只是暂时让我知道代码确实做到了 运行)是不显示,为什么不显示?
使用 F12(我必须 运行 在 IE11 中,在兼容模式下执行此操作),我查找了此文件以便在其中放置断点,但它似乎无法使自己可用。
更新
根据 Archer 的回答,我用以下代码替换了我的代码:
ReturnMsg = "IsNewBusiness logic not reached"
currentYear = Year(Now)
SQLString = "Select NewBiz from MasterUnitsprojSales where CYear = " & currentYear & " and Unit = '" & Unit & "'"
adoRS.Open(SQLString, adoCon)
IsNewBusiness = TRUE 'default (if record not found)
If Not adoRS.EOF Then
IsNewBusiness = adoRS.Fields.Item(0).Value <> 0
ReturnMsg = "Made it to IsNewBusiness logic"
End If
adoRS.Close()
%> <!-- this indicates the end of aspx - start of markup -->
<script type="text/javascript">
alert("<%= ReturnMsg %>");
</script>
<%
...但是当我导航到该页面时仍然没有看到任何提示。
好的,重要的事先说。您不需要在 aspx 文件中使用 Response.Write()
,因为它会在执行后作为标记发送到浏览器。您可以在其中放置任何类型的普通标记,包括 Javascript。因此,您可以将当前拥有的内容更改为...
'determine whether this unit is a new business
currentYear = Year(Now)
SQLString = "Select NewBiz from MasterUnitsprojSales where CYear = " & currentYear & " and Unit = '" & Unit & "'"
adoRS.Open(SQLString, adoCon)
IsNewBusiness = TRUE 'default (if record not found)
If Not adoRS.EOF Then
IsNewBusiness = adoRS.Fields.Item(0).Value <> 0
End If
adoRS.Close()
ReturnMsg = "Made it to IsNewBusiness logic"
%> <!-- this indicates the end of aspx - start of markup -->
<script type="text/javascript">
alert("<%= ReturnMsg %>");
</script>
<% <!-- this indicates end of markup but is only required if you have any further aspx code -->
在一个我刚被要求修改的旧站点上,我添加了一些 VBScript(不熟悉它,只是想伪造它直到我成功),如下所示:
'determine whether this unit is a new business
currentYear = Year(Now)
SQLString = "Select NewBiz from MasterUnitsprojSales where CYear = " & currentYear & " and Unit = '" & Unit & "'"
adoRS.Open(SQLString, adoCon)
IsNewBusiness = TRUE 'default (if record not found)
If Not adoRS.EOF Then
IsNewBusiness = adoRS.Fields.Item(0).Value <> 0
End If
adoRS.Close()
ReturnMsg = "Made it to IsNewBusiness logic"
Response.Write("<script type=""text/javascript"">" & vbCrLf)
Response.Write("<!--" & vbCrLf)
Response.Write("alert ('" & ReturnMsg & "');" & vbCrLf)
Response.Write("-->" & vbCrLf)
Response.Write("</script>" & vbCrLf)
在我添加 "End If" 行之前它失败了 - 导航到那个页面给我一个错误信息。
添加 "End If" 后,错误消息消失了,但是 javascript 警报(只是暂时让我知道代码确实做到了 运行)是不显示,为什么不显示?
使用 F12(我必须 运行 在 IE11 中,在兼容模式下执行此操作),我查找了此文件以便在其中放置断点,但它似乎无法使自己可用。
更新
根据 Archer 的回答,我用以下代码替换了我的代码:
ReturnMsg = "IsNewBusiness logic not reached"
currentYear = Year(Now)
SQLString = "Select NewBiz from MasterUnitsprojSales where CYear = " & currentYear & " and Unit = '" & Unit & "'"
adoRS.Open(SQLString, adoCon)
IsNewBusiness = TRUE 'default (if record not found)
If Not adoRS.EOF Then
IsNewBusiness = adoRS.Fields.Item(0).Value <> 0
ReturnMsg = "Made it to IsNewBusiness logic"
End If
adoRS.Close()
%> <!-- this indicates the end of aspx - start of markup -->
<script type="text/javascript">
alert("<%= ReturnMsg %>");
</script>
<%
...但是当我导航到该页面时仍然没有看到任何提示。
好的,重要的事先说。您不需要在 aspx 文件中使用 Response.Write()
,因为它会在执行后作为标记发送到浏览器。您可以在其中放置任何类型的普通标记,包括 Javascript。因此,您可以将当前拥有的内容更改为...
'determine whether this unit is a new business
currentYear = Year(Now)
SQLString = "Select NewBiz from MasterUnitsprojSales where CYear = " & currentYear & " and Unit = '" & Unit & "'"
adoRS.Open(SQLString, adoCon)
IsNewBusiness = TRUE 'default (if record not found)
If Not adoRS.EOF Then
IsNewBusiness = adoRS.Fields.Item(0).Value <> 0
End If
adoRS.Close()
ReturnMsg = "Made it to IsNewBusiness logic"
%> <!-- this indicates the end of aspx - start of markup -->
<script type="text/javascript">
alert("<%= ReturnMsg %>");
</script>
<% <!-- this indicates end of markup but is only required if you have any further aspx code -->