如何用mshtml获得Javascript中function的返回值

 我来答
疯狂的贤者
推荐于2016-04-05 · TA获得超过641个赞
知道小有建树答主
回答量:343
采纳率:0%
帮助的人:540万
展开全部

  .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函数甚至不需要有返回值了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式