软件编程
位置:首页>> 软件编程>> C#编程>> c#和javascript函数相互调用示例分享

c#和javascript函数相互调用示例分享

  发布时间:2023-10-08 21:33:52 

标签:函数相互调用

在设置过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"});

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com