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