gpt4 book ai didi

c# - 如何在 C# 中从 activex 或 dll 调用 javascript 函数

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:26 25 4
gpt4 key购买 nike

我有一个用 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");
}
*/

但是它抛出异常

"unable to cast COM object of type 'mshtml.HTMLWindow2Class' to interface type '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# 控件调用方法以单击 html 按钮

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

通过这种方式你可以调用你的 javacsript 函数希望它能帮助别人。

关于c# - 如何在 C# 中从 activex 或 dll 调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com