C#后台程序与HTML页面中JS方法互调(功能类似于Ajax中的DWR)
2011-11-25 15:00
507 查看
此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互。
一、C#程序
1、在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中。
2、窗体代码添加 using System.Runtime.InteropServices;
//和Html页面交互使用 在类的上一行添加 [ComVisible(true)]
//和Html页面交互使用 在类的构造其中添加 this.webB.ObjectForScripting = this;
//和Html页面交互使用 如: using System.Runtime.InteropServices;
namespace slgdjb
{
[ComVisible(true)]
public partial class Frm_Index : Form {
public Frm_Index() { InitializeComponent(); this.webB.ObjectForScripting = this; }
}
}
3、添加供Html页面调用的方法 如: 该方法的方法名即为Html页面JS中所要调用的方法名
public string myAction(object para) { //方法内容在此写 }
4、C#程序调用Html页面JS方法 首先要获得Html页面的Document,然后再调用Html页面的JS方法 如: HtmlDocument doc = webB.Document; string[] objArray = new string[2]; objArray[0] = "a"; objArray[1] = "b";
//调用Html页面js方法,JSMonth为JS方法名,objArray为传递的参数。
//JS中不能接收对象,但可以接收整形、字符串、字符串数组。
doc.InvokeScript("JSMonth",objArray);
二、Html页面中JS方法调用C#方法
1、在Html页面JS中调用C#程序的方法,若C#中的方法有返回值,则JS可以得到。 如: //myAction为C#中方法的方法名,para为该方法的参数。 var str = window.external.myAction(para);
2、供C#调用的Html页面中JS的方法 该方法的方法名即为C#中所要调用的方法名 obj即为要传递的参数。若传递的参数为数组,则在JS 方法中可直接使用arguments[index(数组参数编号)]表示数组的参数值。arguments为JS默认数组参数,其好处在于JS方法不必写传递的参数。
function JSMonth(obj){ //若obj为数组,则obj[0]等价于arguments[0];其方法名可改写为JSMonth() }
--------------------------想不起来是为什么要写这篇文章了2011-11-25——————————————
一、C#程序
1、在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中。
2、窗体代码添加 using System.Runtime.InteropServices;
//和Html页面交互使用 在类的上一行添加 [ComVisible(true)]
//和Html页面交互使用 在类的构造其中添加 this.webB.ObjectForScripting = this;
//和Html页面交互使用 如: using System.Runtime.InteropServices;
namespace slgdjb
{
[ComVisible(true)]
public partial class Frm_Index : Form {
public Frm_Index() { InitializeComponent(); this.webB.ObjectForScripting = this; }
}
}
3、添加供Html页面调用的方法 如: 该方法的方法名即为Html页面JS中所要调用的方法名
public string myAction(object para) { //方法内容在此写 }
4、C#程序调用Html页面JS方法 首先要获得Html页面的Document,然后再调用Html页面的JS方法 如: HtmlDocument doc = webB.Document; string[] objArray = new string[2]; objArray[0] = "a"; objArray[1] = "b";
//调用Html页面js方法,JSMonth为JS方法名,objArray为传递的参数。
//JS中不能接收对象,但可以接收整形、字符串、字符串数组。
doc.InvokeScript("JSMonth",objArray);
二、Html页面中JS方法调用C#方法
1、在Html页面JS中调用C#程序的方法,若C#中的方法有返回值,则JS可以得到。 如: //myAction为C#中方法的方法名,para为该方法的参数。 var str = window.external.myAction(para);
2、供C#调用的Html页面中JS的方法 该方法的方法名即为C#中所要调用的方法名 obj即为要传递的参数。若传递的参数为数组,则在JS 方法中可直接使用arguments[index(数组参数编号)]表示数组的参数值。arguments为JS默认数组参数,其好处在于JS方法不必写传递的参数。
function JSMonth(obj){ //若obj为数组,则obj[0]等价于arguments[0];其方法名可改写为JSMonth() }
--------------------------想不起来是为什么要写这篇文章了2011-11-25——————————————
相关文章推荐
- C#后台程序与HTML页面中JS方法互调(功能类似于Ajax中的DWR)
- C#后台程序与HTML页面中JS方法互调
- document.oncontextmenu页面右键菜单功能(2008-09-04 17:49:31| 分类: jsp+html+js+Ajax)
- js用ajax和jison在不同页面的php和html之间互相传值的方法
- MVC设计模式 (1)、html页面事件触发ajax()方法调用ajax.js发送请求至请求目标文件
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- Ajax 动态载入html页面后不能执行其中的js快速解决方法
- web 开发之js---页面缓存, jsp 缓存, html 缓存, ajax缓存,解决方法
- 实现在HTML页面加载完毕后执行某个JS的两种方法
- html text事件和方法,及屏蔽页面js错误的方法
- 在HTML页面用JS获取Get参数方法
- 不用AJAX实现前台JS调用后台C#方法(小技巧)
- 不用AJAX实现前台JS调用后台C#方法(小技巧)
- 不用AJAX实现前台JS调用后台C#方法(小技巧)
- Ajax异步获取html数据中包含js方法无效的解决方法
- 转:不用AJAX实现前台JS调用后台C#方法(小技巧)
- 让html页面不缓存js的实现方法
- js获取html页面节点方法(递归方式)
- 同一个页面内实现html+js表单提交输出功能
- JS 使用html2canvas实现页面截图功能