簡體   English   中英

如何在C#中從ActiveX或DLL調用Java腳本函數

[英]how to call java script function from activex or dll in c#

我有用多線程的c#編寫的active-x類。 我需要從我的activeX調用javascript。 我通過Microsoft.mshtml嘗試過。

/*JS

function do_Print() {
    control.setPage(this);
    control.scriptPrint();
}

function report_back(report){
    alert("Report:"+report);
}


C#

    public void setPage(mshtml.HTMLWindow2Class JSFile) {
                window = JSFile;
    }
    public void scriptPrint(){
                window.execScript("report_back('Printing complete!')", "JScript");
    }
    */

但是它拋出異常

“無法將類型為“ mshtml.HTMLWindow2Class”的COM對象轉換為接口類型為“ mshtml.DispHTMLWindow2”

還有另一種方法。 我可以從Java腳本中調用active-x函數,反之亦然。 關於多線程c#active-x調用javascript函數的任何想法?

您可以像這樣訪問html

private void MyControl_Load(object sender, EventArgs e)
        {
            if (this.Site != null)
            {
                htmldoc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));

            }


        }

然后在任何按鈕上單擊我們的C#控件invoke方法以單擊html按鈕

 HtmlElement setCLIButton = htmldoc.GetElementById("searchButton");
                setCLIButton.InvokeMember("onClick");

通過這種方式,您可以調用javacsript函數,希望它能對某人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM