作家
登录

Javascript调用C#代码

作者: 来源:www.28hudong.com 2013-03-30 01:01:48 阅读 我要评论

本文介绍的是嵌入在.Net的WebBrowser控件中显示的HTML文件中的Javascript如何调用C#代码。现在在客户端程序中嵌入网页的做法已经非常普遍了,例如腾讯的新闻弹出框之类的。 .Net的WebBrowser用的内核应该还是IE的。IE中,window对象有个external属性,这个属性提供了一个外部接口。可以执行宿主代码。要通过这个属性来调用C#方法,其宿主对象必须是ComVisible的。例如,我们在一个Form上放置一个WebBrowser控件,另外准备一个方法OpenForm供js调用。 复制代码 代码如下: [System.Runtime.InteropServices.ComVisibleAttribute(true)] public partial class Main : KSBiz.UI.KSForm { public Main() { InitializeComponent(); } //其余略 public void OpenForm(string s) { BasicInfo.CustomerList f = new StockManage.BasicInfo.CustomerList(); f.Show(); f.MdiParent = this; webBrowser1.Visible = false; } } 再准备一个html文件: 复制代码 代码如下: <body> <h1>欢迎使用</h1> <a href='#' onclick='window.external.OpenForm("test");' >客户列表</a> </body> 在HTML文件中,就可以通过如上的方法来调用C#的方法。 在FormLoad事件中,为WebBrowser控件设置url,以及设置脚本执行的宿主: 复制代码 代码如下: private void Main_Load(object sender, EventArgs e) { System.IO.FileInfo file = new System.IO.FileInfo("top.htm"); // WebBrowser控件显示的网页路径 webBrowser1.Url = new Uri(file.FullName); // 将当前类设置为可由脚本访问 webBrowser1.ObjectForScripting = this; } 这样就好了。

  推荐阅读

  返回对象在当前级别中是第几个元素的实现代码

复制代码 代码如下: //语法:prev(element) //参数:element对象 //返回:对象在当前级别中是第几个元素,从1开始 //<SPAN class=sep>2010-08-26 15:13:55</SPAN> function prev(elem,cont) { if(!cont){cont=1} el>>>详细阅读


本文标题:Javascript调用C#代码

地址:http://www.17bianji.com/kaifa2/JS/24992.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)