如何在javascript函数中调试ASP

如何在javascript函数中调试ASP,javascript,asp-classic,Javascript,Asp Classic,我在一个客户端的经典ASP网站上工作,一些应该显示在页脚中的图像没有显示出来。我也没有看到任何错误消息。有一些javascript应该从SQLServer数据库中读取图像文件名列表。这些图像将根据数据库中的名称列表从本地文件夹中显示。这是在javascript中发生的,但函数中似乎有一些ASP。老实说,我不知道该如何工作,也不知道如何调试它(例如,javascript函数中的ASP)。该站点的其他部分依赖于ADO连接,因此我非常确定该连接的创建是正确的。如何调试这个?我正在使用Chrome,它似

我在一个客户端的经典ASP网站上工作,一些应该显示在页脚中的图像没有显示出来。我也没有看到任何错误消息。有一些javascript应该从SQLServer数据库中读取图像文件名列表。这些图像将根据数据库中的名称列表从本地文件夹中显示。这是在javascript中发生的,但函数中似乎有一些ASP。老实说,我不知道该如何工作,也不知道如何调试它(例如,javascript函数中的ASP)。该站点的其他部分依赖于ADO连接,因此我非常确定该连接的创建是正确的。如何调试这个?我正在使用Chrome,它似乎有一些很好的调试工具。这是我希望能够逐步完成并进行更多研究的函数。我只是不知道怎么做。而且,当我在Chrome中查看这段javascript时,它只有一部分在那里!下面是函数:

function declareLogos() {
    <%   ' get logos

    SQL = "SELECT l.LogoFileName, p.SortOrder FROM InrixCustomerLogo l join InrixCustomerLogoPage p on l.LogoCode = p.LogoCode WHERE p.PageFileName = '" & fn & "' AND SortOrder > 0 ORDER BY SortOrder"
    On Error Resume Next
    Set oLOGO = oConn.Execute(SQL)
    logoerror = Err.Number
    On Error Goto 0
    x = 1  ' array counter

    %>

    <% If NOT logoerror Then %>
    <% Do While NOT oLOGO.EOF %>
    i[<% =x %>] = '<% =oLOGO("LogoFileName") %>';
    <% oLOGO.MoveNext : x = x + 1 : Loop %>
    <% End If %>

    imax = <% =x-1 %>;
    ilast = <% =(((x-1)*4)/4) %>;  // <% =(((x-1)*4)/4) %>   this is imax - 1 that is divisible by four
}
function declareLogos() {


     imax = 0;
     ilast = 0;  // 0   this is imax - 1 that is divisible by four
}

如果您在调试此问题时提供任何指导,我们将不胜感激

请注意,ASP代码不在javascript代码中。它是用于简单使用的内联ASP代码。如果可能,不建议使用内联代码。您可以在代码隐藏中编写代码

这就是如何在内联代码中的特定点中断

<%  System.Diagnostics.Debugger.Break();
   // Code will be present here
%>

就你而言

<%   System.Diagnostics.Debugger.Break();
' get logos

    SQL = "SELECT l.LogoFileName, p.SortOrder FROM InrixCustomerLogo l join InrixCustomerLogoPage p on l.LogoCode = p.LogoCode WHERE p.PageFileName = '" & fn & "' AND SortOrder > 0 ORDER BY SortOrder"
    On Error Resume Next
    Set oLOGO = oConn.Execute(SQL)
    logoerror = Err.Number
    On Error Goto 0
    x = 1  ' array counter

    %>

更新:


在经典ASP
System.Diagnostics.Debugger.Break()中不可用(除非在其周围编写ComVisible包装)。感谢@Frédéric Hamidi指出这一点。

这是向客户端写入文本的服务器端代码。它与Chrome无关,Chrome只能看到HTTP响应。这里的内容是ASP在呈现页面时为JavaScript变量赋值。ASP不在JavaScript.Ah的“内部”。我懂了。看起来我需要在VS中设置与现在不同的项目,然后我将能够设置断点等。这是有意义的。感谢您的解释。因此您可能有一个
logoerror
,或者查询没有返回任何内容(
oLOGO.EOF
为true)。
System.Diagnostics.Debugger.Break()
在经典ASP中不可用(除非您围绕它编写了一个ComVisible包装)。