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