Я пытаюсь создать мост между VBA UserForm и веб-браузером в форме. Мне не нравятся ограничения VBA для запроса документа HTML или внесения изменений на лету, и я хотел бы вместо этого использовать Javascript.
Пока я пробовал:
Private Sub CommandButton2_Click()
Dim head As HTMLGenericElement
Dim scriptEl As HTMLGenericElement
Dim element As IHTMLScriptElement
Set head = WebBrowser1.Document.GetElementsByTagName("head")(0)
Set scriptEl = WebBrowser1.Document.createElement("script")
scriptEl.Text = "function sayHello() { alert('hello') }"
head.appendChild (scriptEl)
WebBrowser1.Document.InvokeScript ("sayHello")
End Sub
Я получаю ошибку 424 - требуется объект в строке "head.appendChild".
Я использовал IsObject () как для head, так и для scriptEl, оба возвращают true. Так что я совсем запутался!
Если бы кто-нибудь мог дать какое-то руководство о том, что происходит, это было бы фантастически, или как адаптировать то, что у меня есть, для переноса сценариев через мост, например:
WebBrowser1.Document.InvokeScript ("my javascript code that I wish to run here")