当前位置:首页 > C# WebBrowser与js互相调用的方法

C# WebBrowser与js互相调用的方法

点击次数:7260  更新日期:2013-06-08

在使用webbrowser的过程中,有时需要与网页上的js进行交互。下面介绍webbrowser与js交互的方法:


1、在c#代码中调用javascript函数
如果要传值,则可以定义object[]数组。

具体方法如下例子:

首先在js中定义被c#调用的方法:

function msg(str)
{
     alert(str);
}

在c#调用js方法Messageaa

       private void button1_Click(object sender, EventArgs e)
       {
           // 调用JavaScript的messageBox方法,并传入参数
           object[] objects = new object[1];
           objects[0] = "c# 调用 javascript";
           webBrowser1.Document.InvokeScript("msg", objects);
       }


2、 在js中调用c#方法

在js中调用c#方法则相对比较简单:
namespace WindowsFormsApplication1
{
    //申名托管类型,对com是可见的
    [System.Runtime.InteropServices.ComVisible(true)]
}
private void Form1_Load(object sender, EventArgs e)
{

    修改webbrowser的属性使c#可以调用js方法:
    webBrowser1.ObjectForScripting = this;
}
首先在c#中定义被js调用的方法:

       public void MyMessageBox(string message)
       {
         MessageBox.Show(message);
       }

在js中调用c#方法:

      <!-- 调用C#方法 -->
      <button onclick="window.external.MyMessageBox('javascript访问C#代码')" >
      javascript访问C#代码</button>