不多說,直接上代碼,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)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答