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