我正在尝试使用Classic ASP在浏览器屏幕上打印当前目录的绝对路径。 (相当于PHP的echo命令)。
我在下面代码的最后一行收到此错误: “Microsoft VBScript运行时错误'800a01a8' 需要的对象:'文档' /Research/ro.asp,第17行“
我尝试了几种不同的方法来打印到屏幕上(如WScript.StdOut.Write),它们也会返回相同的错误。
我怀疑我的错误与它是一个对象这一事实有关,而且对象需要一种不同的方法来打印到屏幕上。
对任何人有任何想法吗?
samplefile.asp =
<%
Dim szCurrentRoot: szCurrentRoot= ""
'Create the File System Ojbect
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Get the Absolute Path of the current directory
szCurrentRoot = objFSO.GetParentFolderName(Server.MapPath(Request.ServerVariables("URL")))
'Print to the screen. The following line is line 17 which causes the error
Document.Write(szCurrentRoot)
%>
经过一些研究后,我找到了问题的答案:
回复于(szCurrentRoot)
这种写入浏览器屏幕的方式是成功的。
答案 0 :(得分:4)
<%
Dim szCurrentRoot: szCurrentRoot= ""
'Create the File System Ojbect
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Get the Absolute Path of the current directory
szCurrentRoot = objFSO.GetParentFolderName(Server.MapPath(Request.ServerVariables("URL")))
'Print to the screen.
Response.Write szCurrentRoot
%>
Response.Write 是将文本数据发送回客户端的方式。使用<% %>
是此方法的快捷方式。
答案 1 :(得分:1)
您无法从ASP打印到屏幕,如果您不在代码块内,则只能使用Response.Write Server.EncodeHTML(szCurrentRoot)
或速记<%=Server.EncodeHTML(szCurrentRoot) %>
将回复写回浏览器。
答案 2 :(得分:-1)
如果从命令行
运行,则不会隐式定义Yea Document例如
cscript whatever.vbs
如果您要在IE中运行此脚本,则可以访问“document”
尝试这样做
设置ie = CreateObject(“InternetExplorer.Application”) ie.document.write(szCurrentRoot)