1

うまくいくかもしれないと思っ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
    }
}
4

1 に答える 1

3

関数を呼び出すには、少なくとも 2 つの方法があります。

WB.document.parentWindow.execScript("displayDate()")
WB.document.parentWindow.displayDate()

スクリプト内のすべてのグローバル関数は、windowオブジェクトのメソッドとして使用できます。

リンク先の記事で参照されている WebBrowser コントロールは .NET Framework の一部であり、使用している WebBrowser コントロールとは異なります。これが、電話をかけようとするとInvokeScript「不明な名前」というエラー メッセージが表示される理由です。

于 2013-03-02T09:25:44.257 に答える