使用VBA,我试图在网页上调用Javascript函数,而不必实际导航到IE中的页面。有问题的功能会将一个项目添加到用户的购物车中。
这是VBA代码:
Dim url As String
Dim ReqIE As MSXML2.XMLHTTP60
url = "http://website.com/store"
Set ReqIE = New MSXML2.XMLHTTP60
ReqIE.Open "GET", url, False
ReqIE.Send
While ReqIE.readyState <> 4
DoEvents
Wend
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLBody As MSHTML.HTMLBody
Set HTMLDoc = New MSHTML.HTMLDocument
Set HTMLBody = HTMLDoc.body
请注意,我正在使用Web请求检索页面,而不是首先导航到IE中的页面,然后与页面进行交互(这是我通过VBA问题制定的大多数Web自动化的方式)。
在检索到的页面上,有一个引用的JavaScript文件,其中包含许多函数。这是我试图调用的函数:
function addToCart(pid, qty) {
if (typeof(pid) == 'string' && pid.indexOf('product options') == 0) {
alert('Please choose an in stock option before adding to cart.');
return false;
} else if (!parseInt(pid)) return false;
}
因此,我尝试过这样的事情:
HTMLDoc.parentWindow.execScript "addToCart(15622, 1)"
这会从VBE产生“自动化错误”消息。在这一点上,我基本上不知道我在做什么,我只是尝试通过我的研究遇到的东西...我认为这个问题与缺乏实际的IE窗口进行交互有关但我可以对此也完全错了。
任何人都知道如何才能继续前进吗?