1、创建一个winform程序
2、声明com+组件可见
[PermissionSet(SecurityAction.Demand, Name = “FullTrust”)]
[ComVisible(true)]//COM+组件可见
3、将webBrowser的HTML中的javaScript指向本Form
webBrowser1.ObjectForScripting = this;
4、导航到网页
webBrowser1.navigate(“http://www.baidu.com”);
或定义一个网页
string szWebBrowserText=…
webBrowser1.DocumentText = szWebBrowserText;
5、网页中的事件处理方法指向winForm中的方法
onClick=‘window.external.ShowMsg(Name.value)’
6、在winForm中定义网页需要的方法
public void ShowMsg(string message)
{
MessageBox.Show(message);
}
完整的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WebBrowserJSDemo
{
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]//COM+组件可见
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.ObjectForScripting = this;
string szWebBrowserText = "<html>" +
"<head>" +
"<title></title>" +
"</head>" +
"<body oncontextmenu=\"event.returnValue=false\">" +
"Please enter your name:<br/>" +
"<input type='text' name='Name' value='dsss'/><br/>" +
"<font onClick=js_fun(Name.value)>Click Here</font>" +
"</body></html><script language='javascript'> " +
"function js_fun(args){var argsss=window.external.ShowMsg(args);" +
"alert(argsss);}</script>";
webBrowser1.DocumentText = szWebBrowserText;
}
//供JS调用
public string ShowMsg(string message)
{
return "我是webBrowser。你输入的内容是:" + message;
}
}
}