C# winform与Javascript的相互调用
作者:网络转载 发布时间:[ 2016/3/9 11:00:51 ] 推荐标签:测试开发技术 .NET
1 <html>
2
3 <head>
4
5 <meta http-equiv="Content-Language" content="zh-cn">
6
7 <script language="javascript" type="text/javascript">
8
9 <!-- 提供给C#程序调用的方法 -->
10
11 function messageBox(message)
12
13 {
14
15 alert(message);
16
17 }
18
19 </script>
20
21 </head>
22
23 <body>
24
25 <!-- 调用C#方法 -->
26
27 <button onclick="window.external.MyMessageBox('javascript访问C#代码')">
28
29 javascript访问C#代码</button>
30
31 </body>
32
33 </html><html>
34
35 <head>
36
37 <meta http-equiv="Content-Language" content="zh-cn">
38
39 <script language="javascript" type="text/javascript">
40
41 <!-- 提供给C#程序调用的方法 -->
42
43 function messageBox(message)
44
45 {
46
47 alert(message);
48
49 }
50
51 </script>
52
53 </head>
54
55 <body>
56
57 <!-- 调用C#方法 -->
58
59 <button onclick="window.external.MyMessageBox('javascript访问C#代码')">
60
61 javascript访问C#代码</button>
62
63 </body>
64
65 </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
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;
4.C#调用JavaScript方法
通过WebBrowser类的Document属性中的InvokeScript方法调用当前网页的Javascript方法。如:
// 调用JavaScript的messageBox方法,并传入参数
object[] objects = new object[1];
objects[0] = "C#访问JavaScript脚本";
webBrowser1.Document.InvokeScript("messageBox", objects);

sales@spasvo.com