如何用mshtml获得Javascript中function的返回值
1个回答
展开全部
.NET 2.0中的解决方法是利用HtmlDocument类的InvokeScript方法来实现:
string strRetVal = "";
//awbMain为System.Windows.Forms.WebBrowser控件
HtmlDocument doc = this.awbMain.Document;
//jsFunction为HTML文档中javascript函数的函数名
strRetVal = (string)doc.InvokeScript("jsFunction");
System.Windows.Forms.MessageBox.Show(strRetVal);
要注意的是,HTML文档中的javascript函数名后要加空括号(没有参数的情况下),而在C# 2.0中调用之则不用加空括号。
在C# 1.x中使用mshtml如何解决这个问题呢,这里介绍一个变通的方法(这些变通的方法在以前的随笔中也用到过):
1、在Form中定义变量用于存储javascript函数的返回值;
2、使用.NET
1.x中的InteropServices把应用程序的Form对象传入到HTML DOM中;
3、在javascript函数中为1中的变量赋值(赋和javascript函数返回值一样的值),这样javascript函数甚至不需要有返回值了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询