C#调用JS的几种方法

时间:2021-05-20

cmd调用phantomjs

官方资料:http://phantomjs.org/quick-start.html

手动执行

从官方下载phantomjs.exe,拷贝它与要执行的js同目录
打开cmd,输入命令行(参考官方资料的命令行)

phantomjs XX.js 参数1 参数2

获得结果

使用C#执行

//注意:保证phantomjs.exe和js在生成目录下存在string url = "传参";//这里调用cmd.exeProcess pProcess = new Process();//调用phantomjs.exepProcess.StartInfo.FileName = $"phantomjs.exe所在路径(可以是相对路径)";pProcess.StartInfo.RedirectStandardOutput = true;pProcess.StartInfo.UseShellExecute = false;pProcess.EnableRaisingEvents = false;//在phantomjs.exe里面执行的命令pProcess.StartInfo.Arguments = $"Test2.js所在路径(可以是相对路径) {url}";pProcess.Start();char[] spliter = { '\r' };StreamReader sReader = pProcess.StandardOutput;string[] output = sReader.ReadToEnd().Split(spliter);foreach (string s in output) Console.WriteLine(s);pProcess.WaitForExit();//取出计算结果Console.WriteLine(output[0]);pProcess.Close();JS如下:function Test() { //创建phantomjs对象 var system = require('system'); //取出参数 var data = system.args[1]; console.log(Math.floor(data));}Test();phantom.exit();

示例代码:https://github.com/zLulus/NotePractice/tree/dev3/Console/CodeLibrary/ExcuteJsByPhantomjs

C#调用JS库

1.jint:https://github.com/sebastienros/jint

可用,但是没有JS的环境
jQuery support:https://github.com/sebastienros/jint/issues/240

//引用:Jintstring filePath = $"{Environment.CurrentDirectory}//ExcuteJs//TestJs.js";string data1 = "1";string data2 = "2";string jsCode = System.IO.File.ReadAllText(filePath);var square = new Engine() .SetValue("data1", data1) // define a new variable .SetValue("data2", data2) // define a new variable .Execute(jsCode) // execute a statement .GetCompletionValue() // get the latest statement completion value .ToObject(); // converts the value to .NET

示例代码:https://github.com/zLulus/NotePractice/tree/dev3/Console/CodeLibrary/ExcuteJs

2.Microsoft.JScript

https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.jscript?redirectedfrom=MSDN&view=netframework-4.8&WT.mc_id=DT-MVP-5003010

3.使用CefSharp创造浏览器环境

CefSharp参考我的资料:https:///Lulus/p/8780595.html

比较麻烦的一种方式

JS翻译成C#……是的,翻译=.=

以上就是C#调用JS的几种方法的详细内容,更多关于C#调用JS的资料请关注其它相关文章!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章