有時候我們需要在C#中直接調用js方法,這是完全沒問題的。當然,我們也可以把js代碼轉化為C#,然后在C#中執行,但是這個就得花時間了~~下面我給大家介紹下一種直接在C#中調用JS文件的方法。
0、貼個效果圖
1、創建個Winform項目。
2、在From1上增加一個文本框一個按鈕。
3、在解決方案中創建一個test.js文件。
test.js代碼如下:
function sayHello(str) { return "Hello," + str; }
4、進入Form1.cs編碼后台代碼。
Form1.cs代碼如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 string path = AppDomain.CurrentDomain.BaseDirectory + "test.js"; 4 string str2 = File.ReadAllText(path); 5 6 string fun = string.Format(@"sayHello('{0}')" ,this.textBox1.Text.Trim()); 7 string result = ExecuteScript(fun, str2); 8 9 MessageBox.Show(result); 10 } 11 12 /// <summary> 13 /// 執行JS 14 /// </summary> 15 /// <param name="sExpression">參數體</param> 16 /// <param name="sCode">JavaScript代碼的字符串</param> 17 /// <returns></returns> 18 private string ExecuteScript(string sExpression, string sCode) 19 { 20 MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl(); 21 scriptControl.UseSafeSubset = true; 22 scriptControl.Language = "JScript"; 23 scriptControl.AddCode(sCode); 24 try 25 { 26 string str = scriptControl.Eval(sExpression).ToString(); 27 return str; 28 } 29 catch (Exception ex) 30 { 31 string str = ex.Message; 32 } 33 return null; 34 }
5、測試
效果圖如第0步。
注:在后台代碼中如果找不到命名空間:MSScriptControl.ScriptControl,請參照下圖增加引用。
閱讀指引:C#使用技巧之調用JS腳本方法二
http://www.cnblogs.com/xdpxyxy/archive/2013/06/12/3132868.html