日期:2014-05-17  浏览次数:20490 次

winform里面怎样做到点击webBrowser里的按钮执行c#程序
是执行c#写的代码,不是JS 
------最佳解决方案--------------------
看这篇文章:
http://www.codeproject.com/Tips/130267/Call-a-C-Method-From-JavaScript-Hosted-in-a-WebBro
注意几点:
1. c#被调用方法所在类标记为[ComVisible(true)]
2. 用webBrowser1.ObjectForScripting注册与javascript交互的c#类
3. js中用window.external.<c#方法>调用c#方法
------其他解决方案--------------------
http://hi.baidu.com/classc_abc/item/cca139fcc0159bdb6325d2e2
------其他解决方案--------------------
“winform里面怎样做到点击webBrowser里的按钮执行c#程序”

这句话是点击winform的程序里面的webbrowser加载的网页,执行当前winform程序里面的某段代码的意思吗?还是执行网页里面的某段代码?
------其他解决方案--------------------
做一个OCX安装在浏览器中。
------其他解决方案--------------------
1、用消息队列或许可以实现(你可以百度一下MSMQ)
2、winform的某些功能写成ActiveX,这样在网页里就能调用了(记得要给ActiveX申请证书,要不然浏览器默认安全设置是不允许直接运行的)
3、检测WebBrowser的访问地址,根据访问地址来调用不同的代码(比如onclick后WebBrowser的地址跳转了,或者当前地址后面加个参数,比如原路径是a.aspx,点击后变成a.aspx?id=123,然后winform获取这个id,根据它的值来调用不同的代码)。
------其他解决方案--------------------
null
------其他解决方案--------------------
该回复于2012-11-28 12:56:27被管理员删除
------其他解决方案--------------------
也许这是一个很简单的问题,我知道aspx文件的代码都写在aspx.cs里面,用onclick=<% xxx()%>就可以调用,js的代码可以通过aspx里面引用,但webBrowser如何和CS文件建立联系我不知道,也许只是一个很基础很简单的问题,没必要弄懂很多其他不相干的东西,大家帮我想想吧
------其他解决方案--------------------
引用:
“winform里面怎样做到点击webBrowser里的按钮执行c#程序”

这句话是点击winform的程序里面的webbrowser加载的网页,执行当前winform程序里面的某段代码的意思吗?还是执行网页里面的某段代码?

是点击winform的程序里面的webbrowser里面自己用程序以字串形式加进去的元素,比如我用webBrowser1.DocumentText = "<html><head>"
                + "</head><body><div>"
                + “内容”
                + "</div></body></html>";
这样加进去一个div,然后我想在div里面加onclick调用本.CS里面的代码
------其他解决方案--------------------
引用:
看这篇文章:
http://www.codeproject.com/Tips/130267/Call-a-C-Method-From-JavaScript-Hosted-in-a-WebBro

window.external为空或者不是对象
------其他解决方案--------------------
引用:
引用:
看这篇文章: http://www.codeproject.com/Tips/130267/Call-a-C-Method-From-JavaScript-Hosted-in-a-WebBro

window.external为空或者不是对象

不好意思,刚刚是少写了一句话webBrowser1.ObjectForScripting = new scriptmanager(this);
现在可以了,研究一下,有了这个问题应该基本解决了