实现步骤: 一、新建一个窗体,加入webBrowser控件 控件名:webBrowser1 二、在窗体后台代码加入如下定义 [System.Runtime.InteropServices.ComVisibleAttribute(true)] public partial class Form1 : Form { //... } 三、加载网页 webBrowser1.Navigate(Application.StartupPath + "/UpDateReport.htm"); webBrowser1.ObjectForScripting = this; //这句必须,不然js不能调用C# 四、调用脚本方法 /// <summary> /// 脚本方法 /// </summary> /// <param name="tag">JS函数名|参数1|参数2</param> /// <returns></returns> private object 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 = new object[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#方法 public string Test(string args) { return "你输入的是:"+args; } //JS代码 <script language="javascript"> window.onload = function() { var CS_returnvalue= window.external.Test("aaa"); alert(CS_returnvalue); } </script>