微软自家的.Net下的JavaScript引擎——ClearScript
2021-03-20 21:24
标签:直接 cut tac nta cli http nuget 脚本 com 微软开源的 JavaScript引擎——ClearScript(当然,也支持VB Script):https://github.com/microsoft/ClearScript ,昨天做了一个大的改变,就是把C++/CLI代码移除了,这就意味着脱离Windows,可以在linux上运行了。 园子里有一篇 : C# / .NET Core 调用javascript方法(适用于Windows/Linux平台) 有很好的示例代码: 引入Nuget包,Microsoft.ClearScript demo.js(原生javascript) 引入Nuget包,Microsoft.ClearScript 初始化 调用脚本有多种方案。 方案一:调用engine.ComplieDocument方法直接加载js文件,然后调用engine.Execute将引入的脚本执行一遍,这样后面就可以调用js方法,m就是js的方法名,调用格式与js相同。 方案二:将要导入的js方法的代码读出来,然后执行一遍,再调用要执行的js方法 直接调用执行调用的方法的js代码也是可以的 特殊情况,调用js全局方法,就是调用js的默认的那些方法 微软自家的.Net下的JavaScript引擎——ClearScript 标签:直接 cut tac nta cli http nuget 脚本 com 原文地址:https://www.cnblogs.com/shanyou/p/13837007.htmlMicrosoft.ClearScript
function m(t, e, r) {
p(v(t))
}
using Microsoft.ClearScript.JavaScript;
using Microsoft.ClearScript.V8;
using (var engine = new V8ScriptEngine())
{
engine.DocumentSettings.AccessFlags = Microsoft.ClearScript.DocumentAccessFlags.EnableFileLoading;
engine.DefaultAccess = Microsoft.ClearScript.ScriptAccess.Full; // 这两行是为了允许加载js文件
// do something
}
V8Script script = engine.CompileDocument(ScriptFilePath); // 载入并编译js文件, 然后Execute, 就可以直接调用。
engine.Execute(script);
var result = engine.Script.m("SHAURCOnewayduew&^%5d54nc‘KH");
string scriptContent = string.Empty;
using(FileStream fs = new FileStream(ScriptFilePath, FileMode.Open, FileAccess.Read))
{
using(StreamReader sr = new StreamReader(fs))
{
scriptContent = sr.ReadToEnd().Replace("\r\n", "");
}
}
engine.Execute(scriptContent); // 取得脚本里的所有内容,Execute一下,然后,调用engine.Script.func(x,y)执行一下。
var result = engine.Script.m("SHAURCOnewayduew&^%5d54nc‘KH");
string scriptContent = string.Empty;
using(FileStream fs = new FileStream(ScriptFilePath, FileMode.Open, FileAccess.Read))
{
using(StreamReader sr = new StreamReader(fs))
{
scriptContent = sr.ReadToEnd().Replace("\r\n", "");
}
}
scriptContent += "m(\"SHAURCOnewayduew&^%5d54nc‘KH\");"; // 在js代码的结尾加上执行的代码
engine.Execute(scriptContent); // 取得脚本里的所有内容,Execute一下,然后,调用engine.Script.func(x,y)执行一下。
var result = engine.Script.m("SHAURCOnewayduew&^%5d54nc‘KH");
var result = engine.Invoke("encodeURIComponent", "SHAURCOnewayduew&^%5d54nc‘KH"); //只能调用全局方法,如encodeURIComponen
文章标题:微软自家的.Net下的JavaScript引擎——ClearScript
文章链接:http://soscw.com/index.php/essay/66868.html