1. 程式人生 > >C#中webbrowser與javascript(js)交互的方法

C#中webbrowser與javascript(js)交互的方法

新建 基本 tool 開發環境 應用 pub click show 還需要

今天在做一個項目的時候需要用c#搞一個webbrowser,然後有些地方還需要與js交互。所以就查了一下資料,發現很多博客提到了但是卻沒有說下具體的操作。所以我就寫一下.

開發環境是Visual Studio 2008 .閱讀此文需要有C#和javascript開發基礎。

1.首先新建一個項目,在默認窗體form1上拖拽一個webbrowser1.

技術分享圖片

2.給form1的Load時間事件添加如下代碼:

private void Form1_Load(object sender, EventArgs e)
{
     webBrowser1.ObjectForScripting = this;     
}

3.打開解決方案資源管理器,在項目上單擊鼠標右鍵,選擇屬性打開項目屬性設置。

4.在應用程序選項卡中點擊程序集信息,然後勾選“使程序集COM可見”。

技術分享圖片

做完這些基本的設置之後就可以讓webbrowser和js交互了,交互方法如下:

C#調用js函數的方法:

技術分享圖片
首先在js中定義被c#調用的方法:
function  Messageaa(message)
{
      alert(message);
}
在c#調用js方法Messageaa private void button1_Click(object sender, EventArgs e) { // 調用JavaScript的messageBox方法,並傳入參數 object[] objects = new object[1]; objects[0] = "c#diao javascript"; webBrowser1.Document.InvokeScript("Messageaa", objects); }
技術分享圖片

用JS調用C#函數的方法:

技術分享圖片
首先在c#中定義被js調用的方法:
public void MyMessageBox(string message)
{
    MessageBox.Show(message);
}

在js中調用c#方法:
<!-- 調用C#方法 -->
<button onclick="window.external.MyMessageBox(‘javascript訪問C#代碼‘)" >
javascript訪問C#代碼</button>
技術分享圖片

C#中webbrowser與javascript(js)交互的方法