有时候我们需要在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