ASP上生成的Javascript页面出现故障

时间:2011-04-19 13:18:32

标签: javascript asp-classic

我是经典ASP的新手,所以我可能会错过一些简单的东西。

我有一个经典的ASP页面运行一些JavaScript来处理一系列复选框上的事件。当我使用生成的HTML并将其粘贴到自己的页面时,JavaScript按预期工作,但在ASP上我遇到了错误。

我猜这与把东西加载到页面上有关,但我不确定。我已经在下面附加了我的JavaScript和ASP页面:

ASP代码

http://pastebin.com/hKgfMRPc

的JavaScript

http://pastebin.com/sbGhRy1V

1 个答案:

答案 0 :(得分:1)

首先,如果你刚开始我会放弃经典ASP并学习.NET。如果.net看起来有点压倒性,请尝试PHP,因为它与经典ASP有很多设计相似之处,但更受支持。经典的ASP现在真的开始了!

此外,在每个页面的顶部,您应该:

<% Option Explicit %>

应始终使用它,因为它使调试变得更容易10x,在重新定义变量时会抛出错误,以及其他有用的东西。即使在发布期间,也要将它放在每一页上。

同样对变量进行维度,这是另一种说法'声明变量。因此,您的ASP页面应如下所示:

<%
    Option Explicit

    Dim xml
    Dim strReturnedText
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
....

此外,不要忘记丢弃对象,否则它们将留在内存中。将您的功能更改为如下所示:

<%
    'Load XML
    set xml = Server.CreateObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load(Server.MapPath("/site-index.xml"))

    'Load XSL
    set xsl = Server.CreateObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load(Server.MapPath("/site-index.xsl"))

    'Get the response
    strReturnedText = xml.transformNode(xsl)

    'Clean up the object
    set xml = nothing

    'Transform file
    Response.Write(strReturnedText)
%>

因为您没有向我们提供错误消息,所以很难为您调试代码。如果您粘贴了进行这些更改后得到的错误消息,那么应该很容易为您确定它。

修改

回复您对输出的评论:

<?xml version="1.0" encoding="UTF-16"?>

当您尝试打印出浏览器在呈现HTML文档时可能会感到困惑的实际XML文件时,这可能会导致错误。

尝试将<xmp>标记中的输出包装成临时测试以查看它是否可以解决问题:

'Transform file
Response.Write("<xmp>" & strReturnedText & "</xmp>")