微软自家的.Net下的JavaScript引擎--- ClearScript
source link: http://www.cnblogs.com/shanyou/p/13837007.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
微软开源的 JavaScript引擎——ClearScript(当然,也支持VB Script): https://github.com/microsoft/ClearScript ,昨天做了一个大的改变,就是把C++/CLI代码移除了,这就意味着脱离Windows,可以在linux上运行了。
园子里有一篇 : C# / .NET Core 调用javascript方法(适用于Windows/Linux平台) 有很好的示例代码:
Microsoft.ClearScript
引入Nuget包,Microsoft.ClearScript
demo.js(原生javascript)
function m(t, e, r) { p(v(t)) }
引入Nuget包,Microsoft.ClearScript
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 }
调用脚本有多种方案。
方案一:调用engine.ComplieDocument方法直接加载js文件,然后调用engine.Execute将引入的脚本执行一遍,这样后面就可以调用js方法,m就是js的方法名,调用格式与js相同。
V8Script script = engine.CompileDocument(ScriptFilePath); // 载入并编译js文件, 然后Execute, 就可以直接调用。 engine.Execute(script); var result = engine.Script.m("SHAURCOnewayduew&^%5d54nc'KH");
方案二:将要导入的js方法的代码读出来,然后执行一遍,再调用要执行的js方法
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");
直接调用执行调用的方法的js代码也是可以的
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");
特殊情况,调用js全局方法,就是调用js的默认的那些方法
var result = engine.Invoke("encodeURIComponent", "SHAURCOnewayduew&^%5d54nc'KH"); //只能调用全局方法,如encodeURIComponen
Recommend
-
214
虽说一直以来我们就不是微软在音乐服务上被重视的市场,不过至少在每次微软又玩挂终止服务的时候,我们还是会帮忙做个历史见证纪录一下的(远望)。这次,前身为 Zune 以及 Xbox Music 的微软音乐订阅服务 Groove Music,已经确认将会在 2017 年 12 月 31 日正式停...
-
131
虽说黑莓都已经完全交由 TCL 负责其黑莓品牌手机的开发,但市面上仍然有一部分的 BB10 系统装置还在使用(虽然最后一台已经在 2 年前cn运了),所以适当的软件支持还是持续提供。不过他们最新宣布会在未来几年,陆续停止对 BlackBerry 10 和 BlackBerry OS 装置的...
-
113
近日,有许多用户反馈,安全软件火绒对腾讯官方程序进行报毒、自动拦截等处理,并因此怀疑火绒产品误杀、误报。随后,火绒安全实验室发布声明对此进行了说明。火绒表示,之所以拦截腾讯相关产品安装,并且将其中某个模块当病毒处理,是因为腾讯QQ在推广“QQ浏览器”...
-
99
solidot新版网站常见问题,请点击这里查看。 提交文章 ...
-
4
10年!微软即将把自家所有服务迁移到Azure云端 来源:ZDNet 2021-01-15 08:36:45关键字: Azure
-
6
iOS版谷歌Chrome浏览器可用自家Blink引擎,苹果正考虑取消WebKit强制要求 2022年12月15日06:26 IT之家
-
1
要革谷歌的命?微软计划将ChatGPT整合至自家搜索引擎中 王眉 发表于 2023年02月02日 13:28...
-
8
微软与谷歌正面扳手腕:计划推出自家移动应用商店 2023-02-28 19:48 出处/作者:快科技 整合编辑:佚名 0
-
9
微软拟推出自家云服务版ChatGPT 价格是常规版的10倍|聊天机器人_新浪财经_新浪网 安装新浪财经客户端第一时间接收最全面...
-
8
微软找到了AI的新用途 竟然是给自家产品打广告 ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK