博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#调用JS
阅读量:6485 次
发布时间:2019-06-23

本文共 1845 字,大约阅读时间需要 6 分钟。

cmd调用phantomjs

官方资料:

手动执行

从官方下载phantomjs.exe,拷贝它与要执行的js同目录

打开cmd,输入命令行(参考官方资料的命令行)

phantomjs XX.js 参数1 参数2

获得结果

使用C#执行

C#代码如下:
//注意:保证phantomjs.exe和js在生成目录下存在string url = "传参"; //这里调用cmd.exe Process pProcess = new Process(); //调用phantomjs.exe pProcess.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();

示例代码:

C#调用JS库

1.jint 

可用,但是没有JS的环境

//引用: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

示例代码

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

CefSharp参考我的资料:https://www.cnblogs.com/Lulus/p/7998297.html

(PS:还有几篇关于CefSharp的资料,在此不一一列出)

4.Microsoft.ClearScript(比较新,没有实验)    

   

比较绕的一种方式

控制台http请求网页->网页调用js->得到结果js对象->结果返回给控制台(即时通讯:SignalR)

即时通讯参考我的资料:http://www.cnblogs.com/Lulus/p/8780595.html

比较麻烦的一种方式

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

 

写完了很开心,结案么么哒(づ ̄ 3 ̄)づ

转载于:https://www.cnblogs.com/Lulus/p/8780599.html

你可能感兴趣的文章
正则表达式
查看>>
Exchange企业实战技巧(27)邮件中使用数字签名和邮件加密功能
查看>>
mysql-5.6.27源码安装及错误解决办法
查看>>
Shell 函数、数组与正则表达式
查看>>
编译安装PHP时两个报错的解决办法
查看>>
System Center 2012 SP1 Data Protection Manager 防止重复备份数据
查看>>
软考复习之路——软考总结
查看>>
Kali linux 2016.2(Rolling)里Metasploit的常用模块
查看>>
企业项目开发--企业中的项目架构以及多环境分配(1)
查看>>
ZOJ 2412 Farm Irrigation
查看>>
C++语言基础(19)-模板的显式具体化
查看>>
[轉]JavaScript获取HTML DOM父,子,临近节点
查看>>
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
查看>>
如何改变Android tab 的高度和字体大小
查看>>
hdu 2853
查看>>
VS2013 MVC Web项目使用内置的IISExpress支持局域网内部机器(手机、PC)访问、调试...
查看>>
Vue.js常用指令:v-show和v-if
查看>>
java自定义接口
查看>>
Codeforces Round #152 (Div. 2) B题 数论
查看>>
马云马化腾等大佬,是如何看待区块链的?
查看>>