程序是这样的,在winForm里拖了一个webBrowser 如图,一大片空白:
然后这个winForm界面的代码:
1.注意这个类的头部必须加上以下代码:
[System.Runtime.InteropServices.ComVisible(true)] 在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类可以com组件的形式供外包调用
2.然后是这个类的方法代码:
#region winForm与js交互 提供js调用方法 public void xmpf(string name, string value, bool trueOrfalse) { messageBox.Show(name); } #endregion
3.在类的构造函数里加载页面代码:
public AddOrderForm() { InitializeComponent(); string pathName = Application.StartupPath + "\\" + "HTMLPage1.htm"; this.webBrowser1.ObjectForScripting = this; webBrowser1.Navigate(pathName); }
4.html页面代码:
<script language="javascript" type="text/javascript"> function Radio1_onclick(obj) { //js调用winform方法 window.external.xmpf(obj.name,obj.value, obj.checked); } </script> <input id="Radio1" name="R1" type="radio" value="100" οnclick="return Radio1_onclick(this)" /> --单选框
5.运行项目,点击单选框按钮,会弹出c# winform里的 提示框,就是会调用xmpf这个方法。