Javascript调用C#代码
2011-01-14 19:52
330 查看
Javascript是一种脚本语言,它可以寄宿在各种不同的宿主中实现强大的功能。本文介绍的是嵌入在.Net的WebBrowser控件中显示的HTML文件中的Javascript如何调用C#代码。现在在客户端程序中嵌入网页的做法已经非常普遍了,例如腾讯的新闻弹出框之类的。
.Net的WebBrowser用的内核应该还是IE的。IE中,window对象有个external属性,这个属性提供了一个外部接口。可以执行宿主代码。要通过这个属性来调用C#方法,其宿主对象必须是ComVisible的。例如,我们在一个Form上放置一个WebBrowser控件,另外准备一个方法OpenForm供js调用。
再准备一个html文件:
在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;
}
这样就好了。
.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;
}
这样就好了。
相关文章推荐
- Javascript 直接调用服务器C#代码 ASP.NET Ajax实例
- javascript调用c#后台代码的方法
- MSScriptControl详解(可实现在C#等语言中调用JAVASCRIPT代码)
- javascript与cs代码互相调用 asp.net中前台javascript与后台C#交互 这里主要包括了javascipt与后台CS代码四种方法互调(其中包括函数与变量的访问)
- C#代码与javaScript的相互调用
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- javascript如何调用C#后代码中的过程
- javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案
- .net中前台javascript与c#后台代码调用
- javascript如何调用C#后台代码中的过程和ASP.NET调用
- ASP.NET Ajax实例—Javascript直接调用服务器C#代码
- javascript调用C#代码的问题(asp.net)
- .net中前台javascript与c#后台代码调用
- ASP.NET Ajax实例—Javascript直接调用服务器C#代码
- Javascript 直接调用服务器C#代码 ASP.NET Ajax实例
- JavaScript调用C#后台代码
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案
- .net中前台javascript与c#后台代码调用
- javascript如何调用C#后代码中的过程