C# winform与Javascript的相互调用

发表于:2016-3-09 10:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:donqiang    来源:51Testing软件测试网采编

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);
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号