此方法适用于 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()
}
分享到:
相关推荐
NULL 博文链接:https://skying007.iteye.com/blog/1044069
整理好的Unity C#与JS互调 脚本互调,原理较简单!示例就三个脚本,简单明了!
android与JS互调,android与JS互调,android与JS互调
Xilium.Cefglue,c#与JS代码互调
一个c#与c++互调的例子,c#调用c++的dll,c++调用c#的方法和事件
android js 互调
wpf内嵌网页,实现与JS的互调的一个小Demo。 因为项目中安装了Cefsharp所以比较大。
Cefglue,c#与JS代码互调不黑屏的一种解决方案,在VS2013下运行正常,可实现C#调用js、js调用winform。
主要实现: java后台隔空调用JS函数和JS直接引用java后台方法
Android与js互调的Demo,希望可以帮助到大家! 对应博客地址:http://blog.csdn.net/qq_34947883/article/details/77990527
java和js互调
Android(Java)与JavaScript(HTML)交互有四种情况: 1) Android(Java)调用HTML中js代码 2) Android(Java)调用HTML中js代码(带参数) 3) HTML中js调用Android(Java)代码 4) HTML中js调用Android(Java...
最近写webview中js与java方法互调,遇到拉一些问题不过最终都解决啦你遇到的问题在这个demo里都会找到答案的
android原生与js互调 android原生与js互调 android原生与js互调
webview和js互调
js与oc互调
QT与JavaScript互调文档
第三版: 集成友盟和JS和Android的Native方法互调 【豪华测试版】 豪华: 自定义测试面板 可以调用系统短信和邮件等系统应用; JS和Android的Native方法互调用所有情况测试 亲测!可用! 用于Android和...
Android与Js互调,Java和Js互相调用例子,博客地址:https://blog.csdn.net/dreams_deng/article/details/104738687
1.本文采用的是android调用assest中的本地.html文件,webview展示(加载网络的html效果是一样的,把url替换掉就行) 2.包含本地.html文件加载,点击.html控件,Android端响应 3.包含本地.html文件加载,点击.html...