今天在做一個項目的時候需要用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>

