无法在 vbscript 中调用“HTMLFile”对象的 Body 属性

Posted

技术标签:

【中文标题】无法在 vbscript 中调用“HTMLFile”对象的 Body 属性【英文标题】:cannot call the Body property for "HTMLFile" object in vbscript 【发布时间】:2019-05-25 02:30:16 【问题描述】:

我有一个 VBSCript 文件,它使用 MSXML2 库从网站获取响应;我正在尝试将响应写入 htmlFile 对象的主体的 innerHTML;尽管声明对象本身没有任何问题,但当我尝试访问 body 属性时,VBS 会返回“OBJECT REQUIRED ['OBJECT']”错误。

这是我目前的代码。

const URL = "https://mywebsite.aspx"
Dim o,user,pass,html 
Set o = CreateObject("MSXML2.ServerXMLHTTP.6.0")
o.open "GET", URL , False
o.send 
    'Error occurs here:
html = CreateObject("htmlFile")
html.body.innerHTML= o.responseText

当我在 VBA IDE 中运行此脚本时(具体来说,作为包含所有相关库的 Excel 电子表格中的一个模块),它运行良好,但当我将它作为 .vbs 文件运行时返回错误。我可以采取哪些步骤来解决此问题?

【问题讨论】:

【参考方案1】:

你应该先初始化 DOM:

Set document = CreateObject("htmlfile")
document.write "<html><head><title>test</title></head><body><div>content</div></body></html>"
MsgBox document.body.innerHTML

或者

Set document = CreateObject("htmlfile")
document.open
document.close
document.body.innerHTML = "<html><head><title>test</title></head><body><div>content</div></body></html>"
MsgBox document.body.innerHTML

注意,&lt;html&gt;&lt;head&gt;&lt;title&gt;test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;div&gt;content&lt;/div&gt;&lt;/body&gt;&lt;/html&gt; 只是一个例子,你甚至可以使用空字符串。

【讨论】:

可以用&lt;html&gt;代替&lt;document&gt;吗? @oraclecertifiedprofessional,其实应该是&lt;html&gt;,我修好了代码。

以上是关于无法在 vbscript 中调用“HTMLFile”对象的 Body 属性的主要内容,如果未能解决你的问题,请参考以下文章

在批处理中调用VBScript(支持获取返回值)

如何在带有命令行参数的 vbscript 中调用函数?

vbscript调用其他文件里的类

无法让 vbscript 识别输入区域

从 VBScript 调用任何带有俄语名称的文件/脚本失败

调用 VBScript 时在批处理脚本中设置参数