c#和javascript函数相互调用示例分享
作者:
在webBrowser使用过程中为了C#和JS通讯,webBrowser必须设置ObjectForScripting的属性,它是一个object,这个object可以提供给webBrowser控件载入的网页上的script访问
在设置过webBrowser控件的ObjectForScripting属性后,还需要设置应用程序对com可见,不然会抛出一个异常(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。),可做如下设置:
[System.Runtime.InteropServices.ComVisible(true)]
例如:
复制代码 代码如下:
[ComVisible(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
webBrowser1.ObjectForScripting = this;
webBrowser1.Navigate("https://www.jb51.net");
base.OnLoad(e);
}
}
如果要和JS通讯,使用webBrowser的Document对象的InvokeScript方法即可。
该方法签名如下:
InvokeScript(String spriteName,object[] args);
例如:
复制代码 代码如下:
<scripttype="text/javascript"> //提供给c#调用的方法
function test(n,s){
alert(n+"/"+s);
} //调用C#的方法
function callCSharp(){ //这里可以看到window.external被设置成了什么
alert(window.external);
window.external.Test("hello",15);
}
</script>
<button onclick="callCSharp()">call c#</button>
调用:web.Document.InvokeScript("test", new Object[] {1,"hello"});
您可能感兴趣的文章:
- C#后台调用前台JS函数方法
- C#使用Http Post方式传递Json数据字符串调用Web Service
- 使用C# 的webBrowser写模拟器时的javascript脚本调用问题
- 浅谈C#下winform和JS的互相调用和传参(webbrowser)
- Javascript调用C#代码
- C#后台调用前台javascript的五种方法小结
- Javascript 直接调用服务器C#代码 ASP.NET Ajax实例
- javascript与asp.net(c#)互相调用方法
- 在C#中调用VBScript、javascript等脚本的实现代码
- C# javaScript函数的相互调用
- .net中前台javascript与后台c#函数相互调用问题
- C#调用JS的几种方法