1

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

任何调试此问题的指导将不胜感激!

4

1 回答 1

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

    %>

更新:

在经典的 ASPSystem.Diagnostics.Debugger.Break();中不可用(除非您围绕它编写 ComVisible 包装器)。感谢@Frédéric Hamidi 指出这一点。

于 2013-01-15T19:20:23.680 回答