官方资料:http://phantomjs.org/quick-start.html
从官方下载phantomjs.exe,拷贝它与要执行的js同目录
打开cmd,输入命令行(参考官方资料的命令行)
phantomjs XX.js 参数1 参数2
获得结果
//注意:保证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();
示例代码:https://github.com/zLulus/NotePractice/tree/dev3/Console/CodeLibrary/ExcuteJsByPhantomjs
1.jint:https://github.com/sebastienros/jint
可用,但是没有JS的环境
jQuery support:https://github.com/sebastienros/jint/issues/240
//引用:Jint string 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://www.cnblogs.com/Lulus/p/7998297.html
(PS:还有几篇关于CefSharp的资料,在此不一一列出)
4.Microsoft.ClearScript(比较新,没有实验)
html" target="_blank">https://github.com/Microsoft/ClearScript
控制台http请求网页->网页调用js->得到结果js对象->结果返回给控制台(即时通讯:SignalR)
即时通讯参考我的资料:http://www.cnblogs.com/Lulus/p/8780595.html
JS翻译成C#……是的,翻译=.=
以上就是C#调用JS的几种方法的详细内容,更多关于C#调用JS的资料请关注小牛知识库其它相关文章!
本文向大家介绍js的函数有哪几种调用形式?相关面试题,主要包含被问及js的函数有哪几种调用形式?时的应答技巧和注意事项,需要的朋友参考一下 其中, 和 使得函数内的 this 被绑定到 上。 同时可以使用 来产生绑定到某个 this 的函数变体。
本文向大家介绍浅谈几种常用的JS类定义方法,包括了浅谈几种常用的JS类定义方法的使用技巧和注意事项,需要的朋友参考一下 // 方法1 对象直接量 // 方法2 定义函数对象 // 方法3 原型继承 // 方法4 工厂模式 以上这篇浅谈几种常用的JS类定义方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍js定义类的几种方法(推荐),包括了js定义类的几种方法(推荐)的使用技巧和注意事项,需要的朋友参考一下 ECMAScript6已经支持了class,但之前版本都不支持类,但是可以通过一些方法来模拟类。 js中的类,既是重点,也是难点,很多时候都感觉模棱两可。 首先强调一下js中很重要的3个知识点:this、prototype、constructor。 下面我们来总结一下定义(模拟)
本文向大家介绍Js面向对象的几种方式相关面试题,主要包含被问及Js面向对象的几种方式时的应答技巧和注意事项,需要的朋友参考一下 1.对象的字面量 var obj = {} 2.创建实例对象 var obj = new Object(); 3.构造函数模式 function fn(){} , new fn(); 4.工厂模式:用一个函数,通过传递参数返回对象。function fn(params){
本文向大家介绍详解js 创建对象的几种方法,包括了详解js 创建对象的几种方法的使用技巧和注意事项,需要的朋友参考一下 在js中创建对象的方法可分为6种,分别是:基本模式、工厂模式、构造函数模式、原型模式、组合模式、动态原型模式,接下来分别看下这几种模式的写法吧 一、基本模式 二、工厂模式 缺点:1、实例之间没有联系;2、没有使用new关键字;3、会造成资源的浪费,每生成一个实例都会都会增加一些重
本文向大家介绍JS中继承实现的几种方式?相关面试题,主要包含被问及JS中继承实现的几种方式?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、原型链继承,将父类的实例作为子类的原型,他的特点是实例是子类的实例也是父类的实例,父类新增的原型方法/属性,子类都能够访问,并且原型链继承简单易于实现,缺点是来自原型对象的所有属性被所有实例共享,无法实现多继承,无法向父类构造函数传参。 2、构造继