C# 执行Javascript脚本
该测试在.netcore环境中执行。
1.引用微软提供的包"Microsoft.ClearScript"。
2.编写好Javascript脚本。
function testFunc(t) { return t + ",这是一个演示脚本"; }
3.在项目中添加C#代码。
using (var engine = new V8ScriptEngine()) { string testScript = System.IO.File.ReadAllText("demo.js", System.Text.Encoding.UTF8); engine.Execute(testScript); //直接C#函数调用 var rValue = engine.Script.testFunc("你好"); Console.WriteLine(rValue); //你好,这是一个演示脚本 //或者使用脚本调用 var rValue2 = engine.Invoke("testFunc", "你好"); Console.WriteLine(rValue2); //你好,这是一个演示脚本 }
4.其他使用方法和相关文档,可以访问项目的相关链接
源码地址:https://github.com/microsoft/ClearScript
例 子:https://microsoft.github.io/ClearScript/Examples/Examples.html
5.使用ClearScript需要注意的。
- 如果JavaScript代码中有window等浏览器对象,执行engine.Execute(testScript);会报错。
- 如果脚本中有未定义的对象,同样执行engine.Execute(testScript);也会报错。
- 如果想执行多个文件,只需要将多个文件拼接成一个字符串即可。
- 考虑到某一个JavaScript脚本文件是不能修改情况下,脚本文件可以看成包含输入输出的模块。模块中用到的成员变量可以自己定义一个JavaScript脚本文件进行适配。