- 實現(xiàn)步驟:
- 一、新建一個窗體,加入webBrowser控件
- 控件名:webBrowser1
-
- 二、在窗體后臺代碼加入如下定義
- [System.Runtime.InteropServices.ComVisibleAttribute(true)]
- public partial class Form1 : Form
- {
- //...
- }
- 三、加載網(wǎng)頁
- webBrowser1.Navigate(Application.StartupPath + "/UpDateReport.htm");
- webBrowser1.ObjectForScripting = this; //這句必須,不然js不能調(diào)用C#
- 四、調(diào)用腳本方法
-
- /// <summary>
- /// 腳本方法
- /// </summary>
- /// <param name="tag">JS函數(shù)名|參數(shù)1|參數(shù)2</param>
- /// <returns></returns>
- private object EXEC_JS(System.Windows.Forms.WebBrowser webBrowser, string tag)
- {
- string[] args = tag.Split('|');
- if (args.Length == 1)
- {
- return webBrowser.Document.InvokeScript(args[0], null);
- }
- else
- {
- object[] objects = new object[args.Length - 1];
- Array.Copy(args, 1, objects, 0, objects.Length);
- return webBrowser.Document.InvokeScript(args[0], objects);
- }
- }
- 五、C#調(diào)用腳本方法例子,可以有返回值
-
- //JS方法
- <script language="javascript">
- function js_fun(args)
- {
- alert("我是通過js腳本彈出的。你輸入的內(nèi)容是:"+args);
- return "JAVASCRIPT";
- }
- </script>
- //C#代碼
- object returnvalue = EXEC_JS(webBrowser1, "js_fun|參數(shù)字符串");
- MessageBox.Show("js方法返回值是:" + returnvalue.ToString());
- 六、JS調(diào)用C#方法的例子
-
- //C#方法
- public string Test(string args)
- {
- return "你輸入的是:"+args;
- }
- //JS代碼
- <script language="javascript">
- window.onload = function()
- {
- var CS_returnvalue= window.external.Test("aaa");
- alert(CS_returnvalue);
- }
- </script>
|