JavaScript与C# Windows应用程序交互方法


一、建立网页


<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);
}
}



Dnew.cn 注:原文:http://www.cnblogs.com/xds/archive/2007/03/02/661838.html



相关阅读:
CSS Sprites技术以及图片优化
APACHE禁止图片盗链
colinux-0.7.2中安装debian-4.0r3
Oracle数据库效率技巧:避免错误的索引
php设计模式 Bridge (桥接模式)
iis 服务器应用程序不可用的解决方法
创建本地的PEAR
使用AJAX异步获取数据
支持php4、php5的mysql数据库操作类
调整FreeBSD的虚拟内存系统
函数式JavaScript编程指南
file_get_contents函数不能使用的解决方法
PHP, JScript 和 VBScript 函数和类的语法
vBulletin Forum 2.3.xx SQL Injection
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 学生干部个人反思 一阕阕断句残章,醉我半世痴狂... 初中生庆元旦作文 假如我会变作文900字 窃读的滋味 煤矿安全生产月讲话稿 土木工程专业暑假实习报告 龙塔 勤奋努力的结果作文 医院医生个人工作小结范文 关于房屋装修协议的合同样本 奇幻森林之旅(1)作文300字 周记300字记一次购物 梦里开花,无处取香 小学生低碳生活倡议书 城里的风雨 世界电信日的由来 我知道你会好起来 电工安全生产岗位责任制 激励自己的青春励志座右铭 时光 很静 如何销售消费者不易接受的产品 散文:家有小不点(一) 早上问候语短信 朱坡 内涵哲理搞笑句子 关爱环境200字 党校学员自我鉴定范文 迷人的秋天300字 情到深处无难事 歌德谈话录读后感 介绍仙人球的作文250字 保卫工作个人年终总结 小学六年级作文450字:办公桌上的一束花 城管执法分局局长的领导述职述廉报告 市体育局科学发展观学习调研阶段工作总结 政府办公室党支部规章制度 观《感动中国》有感作文500字 小学五年级作文1000字:精彩的辩论会 拔河比赛800字作文 ATree 汽车作文250字 原始森林历史记作文550字 七年级上英语教学反思 元旦搞笑短信大全 读书糗事 快乐的中秋节日记 应届毕业生选择工作的六步建议 千万不要带着女朋友和自己兄弟合租 好朋友作文700字

Copyright © 2016 phpStudy |