如何在javascript函数中调试ASP

时间:2013-01-15 19:04:15

标签: javascript asp-classic

我正在使用客户端的经典ASP网站,并且一些应该在页脚中显示的图像没有显示出来。我也没有看到任何错误消息。有一些javascript应该在SQL Server数据库的图像文件名列表中读取。这些图像根据DB中的名称列表从本地文件夹中显示。这是在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
}

在实际的网页上,这是Chrome的工具显示的功能:

function declareLogos() {


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

非常感谢调试此问题的任何指导!

1 个答案:

答案 0 :(得分:0)

请注意,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éricHamidi指出它。