C# webBrowser与javascript互调

C# webBrowser与javascript互调

转自:http://www.cnblogs.com/zyx_blog/articles/1993473.html

实现步骤:

一、新建一个窗体,加入webBrowser控件

    控件名:webBrowser1

 

二、在窗体后台代码加入如下定义

 

[System.Runtime.InteropServices.ComVisibleAttribute(true)]
publicpartialclass Form1 : Form
{
//...
}

 

三、加载网页

    webBrowser1.Navigate(Application.StartupPath + "/UpDateReport.htm");
    webBrowser1.ObjectForScripting = this;  //这句必须,不然js不能调用C#

四、调用脚本方法

 

复制代码
///<summary>
/// 脚本方法
///</summary>
///<param name="tag">JS函数名|参数1|参数2</param>
///<returns></returns>
privateobject EXEC_JS(System.Windows.Forms.WebBrowser webBrowser, string tag)
{
string[] args = tag.Split('|');
if (args.Length ==1)
{
return webBrowser.Document.InvokeScript(args[0], null);
}
else
{
object[] objects =newobject[args.Length -1];
Array.Copy(args,
1, objects, 0, objects.Length);
return webBrowser.Document.InvokeScript(args[0], objects);
}
}
复制代码

 

五、C#调用脚本方法例子,可以有返回值

 

复制代码
//JS方法
<script language="javascript">
function js_fun(args)
{
alert(
"我是通过js脚本弹出的。你输入的内容是:"+args);
return"JAVASCRIPT";
}
</script>
//C#代码
object returnvalue = EXEC_JS(webBrowser1, "js_fun|参数字符串");
MessageBox.Show(
"js方法返回值是:"+ returnvalue.ToString());
复制代码

 

六、JS调用C#方法的例子

 

复制代码
//C#方法
publicstring Test(string args)
{
return"你输入的是:"+args;
}
//JS代码
<script language="javascript">
window.onload
= function()
{
var CS_returnvalue
= window.external.Test("aaa");
alert(CS_returnvalue);
}
</script>
复制代码

 

 
 
分类: C# winform
posted @ 2013-07-26 10:44  哈哈好玩  阅读(231)  评论(0)    收藏  举报