C#使用技巧之调用JS脚本方法一

摘要:
有时候我们需要在C#中直接调用js方法,这是完全没问题的。当然,我们也可以把js代码转化为C#,然后在C#中执行,但是这个就得花时间了~~下面我给大家介绍下一种直接在C#中调用JS文件的方法。test.js代码如下:functionsayHello{return"Hello,"+str;}4、进入Form1.cs编码后台代码。Form1.cs代码如下:1privatevoidbutton1_Click2{3stringpath=AppDomain.CurrentDomain.BaseDirectory+"test.js";4stringstr2=File.ReadAllText;56stringfun=string.Format;7stringresult=ExecuteScript;89MessageBox.Show;10}1112///13///执行JS14///15///参数体16///JavaScript代码的字符串17///18privatestringExecuteScript19{20MSScriptControl.ScriptControlscriptControl=newMSScriptControl.ScriptControl();21scriptControl.UseSafeSubset=true;22scriptControl.Language="JScript";23scriptControl.AddCode;24try25{26stringstr=scriptControl.Eval.ToString();27returnstr;28}29catch30{31stringstr=ex.Message;32}33returnnull;34}5、测试效果图如第0步。

有时候我们需要在C#中直接调用js方法,这是完全没问题的。当然,我们也可以把js代码转化为C#,然后在C#中执行,但是这个就得花时间了~~下面我给大家介绍下一种直接在C#中调用JS文件的方法。

0、贴个效果图

C#使用技巧之调用JS脚本方法一第1张

1、创建个Winform项目。

2、在From1上增加一个文本框一个按钮。

3、在解决方案中创建一个test.js文件。

test.js代码如下:

functionsayHello(str) {
    return "Hello," +str;
}

4、进入Form1.cs编码后台代码。

Form1.cs代码如下:

1  private void button1_Click(objectsender, 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, stringsCode)
19 {
20             MSScriptControl.ScriptControl scriptControl = newMSScriptControl.ScriptControl();
21             scriptControl.UseSafeSubset = true;
22             scriptControl.Language = "JScript";
23 scriptControl.AddCode(sCode);
24             try
25 {
26                 string str =scriptControl.Eval(sExpression).ToString();
27                 returnstr;
28 }
29             catch(Exception ex)
30 {
31                 string str =ex.Message;
32 }
33             return null;
34         }

5、测试

效果图如第0步。

注:在后台代码中如果找不到命名空间:MSScriptControl.ScriptControl,请参照下图增加引用。

C#使用技巧之调用JS脚本方法一第2张

阅读指引:C#使用技巧之调用JS脚本方法

http://www.cnblogs.com/xdpxyxy/archive/2013/06/12/3132868.html

免责声明:文章转载自《C#使用技巧之调用JS脚本方法一》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JSON 与List转换类封装Fiddler4抓包工具使用教程一下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android 菜单(OptionMenu)大全 建立你自己的菜单

菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),今天这讲是OptionsMenu    一、概述   public boolean onCreateOptionsMenu(Menu menu):使用此方法调用Optio...

Unity热更新 xLua

xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。 2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。 目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现...

纯js实现人脸识别眨眨眼张张嘴案例——index.html

<!DOCTYPE html> <html> <meta charset="GBK"> <style>#container { position:relative; } #canvas { position:ab...

Spark操作dataFrame进行写入mysql,自定义sql的方式

业务场景:   现在项目中需要通过对spark对原始数据进行计算,然后将计算结果写入到mysql中,但是在写入的时候有个限制:   1、mysql中的目标表事先已经存在,并且当中存在主键,自增长的键id   2、在进行将dataFrame写入表的时候,id字段不允许手动写入,因为其实自增长的 要求:   1、写入数据库的时候,需要指定字段写入,也就是说,只...

洛谷 2957 [USACO09OCT]谷仓里的回声Barn Echoes

题目描述 The cows enjoy mooing at the barn because their moos echo back, although sometimes not completely. Bessie, ever the excellent secretary, has been recording the exact wording...

将Flash的Sprite导入Unity(解释说明版)

usingUnityEngine; usingUnityEditor; usingSystem.IO; usingSystem.Xml; usingSystem.Reflection; public classAutoSliceSpriteSheetWithXML : AssetPostprocessor { private voidOnPr...