不多說,直接上代碼,winform下button1調用js函數,從html頁面獲取值,然后JS調用WINFORM的函數,傳送獲取到的值到winform并通過messagebox的方法show出來。一步到位,winform調用JS函數和JS調用winform函數的方法都有了。
C#的winform下代碼如下:
[System.Runtime.InteropServices.ComVisible(true)] public partial class Form1 : Form { public Form1() { InitializeComponent(); webBrowser1.Navigate(Application.StartupPath + @"./edt/index.html"); this.webBrowser1.ObjectForScripting = this; } //對獲取到的UBB編輯器內容進行處理的函數【piikee注】 public void getContext(string message) { MessageBox.Show(message); } private void button1_Click(object sender, EventArgs e) { webBrowser1.Document.InvokeScript("go"); //調用html頁面的JS函數來傳參數和運行winForm下的函數 } }
webbrowser中html頁面的中JS函數代碼如下:
function go(){window.external.getContext(nEditor.tGetUBB());//nEditor.tGetUBB是一個獲取UBB編輯器內容的函數,此處可以直接寫要傳遞給WINFORM的字符串,記得字符串要加雙引號。}
注意重點: [System.Runtime.InteropServices.ComVisible(true)]和 this.webBrowser1.ObjectForScripting = this;這兩句是必需品。
以上這篇淺談C#下winform和JS的互相調用和傳參(webbrowser)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答