Я пытаюсь исправить старый макрос, работающий с функцией GetData, которая извлекает всю страницу в строке ответа.(Не могу дать реальный URL здесь)
Function getDataFor(tva As String) As String
' Early binding, set Tools - Reference - Microsoft XML,v6.0
Dim oDOM As New MSXML2.DOMDocument30
Dim oNodeList As IXMLDOMNodeList
Dim oReq As MSXML2.XMLHTTP
Set oReq = New MSXML2.XMLHTTP
oReq.Open "GET", "https://xxxxxxx.asp?name=" & tva, False
oReq.send
While oReq.readyState <> 4
Wend
Dim response As String
Dim name As String
Dim hasLoginBelspo As String
response = oReq.responseText
Dim token1 As Long
Dim token2 As Long
token1 = InStr(response, "company.name=")
token2 = InStr(response, "company.address=")
On Error GoTo Proceed
name = Mid(response, token1 + 14, token2 - (token1 + 16))
On Error GoTo 0
token1 = InStr(response, "parent.SetLoginInfo")
hasLoginBelspo = Replace(Mid(response, token1 + 28, 5), ",", "")
GoTo Proceed2
Proceed:
name = ""
hasLoginBelspo = ""
Proceed2:
getDataFor = name & "," & hasLoginBelspo
End Function
Соответствующая страница загружена и необходимые данные записаны между тегами javascript:
Вот копия того, что я могу найти висходная страница, когда я вставляю URL в браузер.
<script language="javascript">
var company=new Object();company.number="xxx";company.name="xxx";company.address="xxx";company.zip="xxx";company.city="xxx";parent.SetLoginInfo(company,false,true,"xxx","");
</script>
Все данные, замененные на xxx, - это то, что мне нужно.В браузере я получаю его, но с макросом иногда эти данные xxx пусты.Это должно быть потому, что библиотека, используемая для загрузки javascript, может быть не самой подходящей (MSXML2).
У вас есть представление о том, что мне нужно изменить, или какую библиотеку я должен использовать, чтобы быть увереннымданные javascript будут перехвачены?
Большое спасибо