我正在尝试在通过DOMDocument加载的javascript中执行一个函数。 例如:
'on page load
Webbrowser1.navigate("a htmldocument with a div called mainDiv")
然后:
mDoc = WebBrowser1.Document
Dim mainDiv As IHTMLDOMNode = mDoc.DomDocument.getElementById("mainDiv")
mainDiv.innerHTML = (IO.File.ReadAllText("a file with just a div and script"))
'File has no html, head and body tags
所以现在我需要执行追溯加载到mainDiv中的脚本。 我试过了:
Webbrowser1.Document.InvokeScript("onLoadScript")
...但据我所知,此方法只能看到从navigation事件加载的DOM。 我希望有一种方法可以通过访问DOMDocument来执行脚本。 任何帮助表示赞赏。
由于
答案 0 :(得分:2)
您可以尝试动态地注入调用动态脚本的脚本。这会绕过.InvokeScript函数
HtmlElement headtag = WebBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scripttag = WebBrowser1.Document.CreateElement("script");
IHTMLScriptElement scriptelm = (IHTMLScriptElement)scripttag.DomElement;
scriptelm.text = "onLoadScript();";
headtag.AppendChild(scripttag);