一、建立网页
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<script language="javascript" type="text/javascript">
<!-- 提供给 C#程序调用的方法 -->
function messageBox(message)
{
alert(message);
}
</script>
</head>
<body>
<!-- 调用C#方法 -->
<button onclick="window.external.MyMessageBox('javascript 访问C#代码')" >
javascript访问C#代码</button>
</body>
</html>
二、建立Windows应用程序
1. 创建Windows应用程序项目
2. 在Form1窗体中添加WebBrowser控件
3. 在Form1类的上方添加
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
这是为了将该类设置为com可访问。如果不进行该声明将会出错。出错信息如下图所示:
如:
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
4.初始化WebBrowser的Url与ObjectForScripting两个属性。
Url属性:WebBrowser控件显示的网页路径
ObjectForScripting属性:该对象可由显示在WebBrowser控件中的网页所包含的脚本代码访问。
将Url属性设置为需要进行操作的页的URL路径。
JavaScript通过window.external调用C#公开的方法。即由ObjectForScripting属性设置的类的实例中所包含的公共方法。具体设置例子如下:
System.IO.FileInfo file = new System.IO.FileInfo("index.htm");
// WebBrowser控件显示的网页路径
webBrowser1.Url = new Uri(file.FullName);
// 将当前类设置为可由脚本访问
webBrowser1.ObjectForScripting = this;
5.C#调用JavaScript方法
通过WebBrowser类的Document属性中的InvokeScript方法调用当前网页的Javascript方法。如:
// 调用JavaScript的messageBox方法,并传入参数
object[] objects = new object[1];
objects[0] = "C#访问JavaScript脚本";
webBrowser1.Document.InvokeScript("messageBox", objects);
完整代码如下:
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.IO.FileInfo file = new System.IO.FileInfo("index.htm");
// WebBrowser控件显示的网页路径
webBrowser1.Url = new Uri(file.FullName);
// 将当前类设置为可由脚本访问
webBrowser1.ObjectForScripting = this;
}
private void button1_Click(object sender, EventArgs e)
{
// 调用 JavaScript的messageBox方法,并传入参数
object[] objects = new object[1];
objects[0] = "C#访问JavaScript脚本";
webBrowser1.Document.InvokeScript("messageBox", objects);
}
// 提供给JavaScript调用的方法
public void MyMessageBox(string message)
{
MessageBox.Show(message);
}
}
分享到:
相关推荐
JavaScript与C# Windows应用程序交互. 一个简单的例子但是很实用
JavaScript与C# Windows应用程序交互方法
avascript与c#后台交互 1.在后台c#代码中调用jacascript的方法 javascript代码: <script type="text/javascript" language="javascript"> function test() { alert("oec2003"); return false; } c#代码: ...
c#页面与javascript进行变量赋值读取变量值的方法,包括读取C#后台变量,后台设置前台js的变量等
仅仅是一个测试的程序,提供了C#与javascript之间数据、函数互操作的方法,供初学者借鉴。
C#代码与javaScript函数的相互调用
网页与C#客户端的无缝交互示例,采用javascript
因项目需要,要用js加密后,提交给C#解密,在网上找了半天,无数个版本,却不能互相使用 就随便下载了一个JS版本的,把它改写成C#版本的 这样JS加密后,C#也能解密 反之C#加密后,JS也能解密 共享给大家吧。 注:...
Flex 与javascript交互、C#读写Cookie代码
Web前端使用JavaScript进行开发,利用Ajax技术与后端通信,C#后端采用Asp.net的ashx处理前端请求,数据库端使用Mysql数据库,C#后端可以与数据库直连。
由于是在asp.net中实现,故问题演化成asp.net中javascript与后台c#如何进行交互。 C#代码与javaScript函数的相互调用主要有四个方面: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量?
在asp.net开发中,经常会用到后台和前台的交互,就此总结了一点c#和javascript相互操作的方法 1.在后台c#代码中调用jacascript的方法 javascript代码: [removed] function test() { alert(oec2003); ...
使用WebView中的Javascript和本地代码交互
不仅winform方法能调用js方法,同时js方法能调用winform中的C#方法
采用谷歌内核CefSharp进行开发,主要是为了实现JS交互,实现前端JS调用原生能力,如:相机、VLC视频能力(主要播放流视频)等。 实现主要功能: 浏览器标签、HTML页面能播放视频、下载记录、JS交互(能调用原生相机...
activex与js交互,简单易学 内附有activex源码 欢迎大家参考
Jering.Javascript.NodeJS目录总览Jering.Javascript.NodeJS使您能够调用JavaScript中 ,从C#。 借助此功能,您可以使用C#项目中的javascript库和脚本。 您可以使用此库来替代最近淘汰的 。 替换了INodeService的...
C#内嵌cef与JS的交互 一、源码描述 C#内嵌cef与JS的交互 环境:VS2022 wpf def 二、功能介绍 wpf使用cef实现与js交互的小demo,学习用~。 三、注意事项 1、初次编译耗时较久,因为引用的cef包巨大。 2、ctrl...