我是经典ASP的新手,所以我可能会错过一些简单的东西。
我有一个经典的ASP页面运行一些JavaScript来处理一系列复选框上的事件。当我使用生成的HTML并将其粘贴到自己的页面时,JavaScript按预期工作,但在ASP上我遇到了错误。
我猜这与把东西加载到页面上有关,但我不确定。我已经在下面附加了我的JavaScript和ASP页面:
ASP代码
的JavaScript
答案 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>")