我认为InvokeScript
可能有效,但事实并非如此。
strHTML =
(
<!DOCTYPE html>
<html>
<head>
<script> function displayDate() { document.getElementById("demo").innerHTML=Date(); }</script>
</head>
<body>
<p id="demo" onclick="displayDate()">This is a paragraph. Click here.</p>
</body>
</html>
)
new WebBrowser(strHTML)
Class WebBrowser
{
__New(strHTML) {
static WB
Gui, New, Resize
Gui, Add, ActiveX, vWB w780 h580 , Shell.Explorer
Gui, show, w800 h600
WB.Navigate("about:blank")
Loop
Sleep 10
Until (WB.readyState=4 && WB.document.readyState="complete" && !WB.busy)
WB.Document.Write(strHtml)
; WB.Document.Close()
WB.document.InvokeScript("displayDate")
; WB.document.parentWindow.document.InvokeScript("displayDate") ; does not work
return this
GuiClose:
ExitApp
}
}
答案 0 :(得分:2)
至少有两种方法可以调用该函数:
WB.document.parentWindow.execScript("displayDate()")
WB.document.parentWindow.displayDate()
脚本中的所有全局函数都可用作window
对象的方法。
您链接的文章中提到的WebBrowser控件是.NET Framework的一部分,与您正在使用的WebBrowser控件不同。这就是尝试调用InvokeScript
引发“未知名称”错误消息的原因。