标签: jint

加载DOM并使用.Net执行javascript,服务器端

我想使用文档(字符串形式)或URL加载DOM,然后对它执行javascript函数(包括jquery选择器).这将完全是服务器端,正在进行中,没有客户端/浏览器.

基本上我需要加载dom然后使用jquery选择器和text()&type val()函数从中提取字符串.我真的不需要操纵dom.

我看过.Net javascript引擎,如Jurassic和Jint,但都不支持加载DOM,因此不能做我需要的.

我愿意考虑非.Net解决方案(node.js,ruby等),如果它们存在,但我们更喜欢.Net.

编辑 下面是一个很好的答案,但目前我正在尝试不同的路线,我试图将envjs移植到侏罗纪.如果我可以开始工作,我认为它会做我想做的事,请继续关注....

.net javascript jint envjs jurassic

7
推荐指数
1
解决办法
1万
查看次数

是否有人使用Jint进行可视化调试?

我一直在使用Jint来运行服务器端的JavaScript代码,到目前为止我很喜欢它.我遇到的一个问题是调试.

JInt公开在执行语句或命中断点时可以触发的事件. 正如网站上提到的那样,可以创建一个通过这种机制工作的可视化调试器.

在我重新发明轮子之前,还有人这样做过吗?是否有可能促进该过程的框架,库或工具?

javascript c# debugging server-side jint

6
推荐指数
1
解决办法
1572
查看次数

Jint + XNA(C#)

是否可以使用jint来操作使用XNA(C#)创建的3D环境,并为此环境添加功能(再次使用jint)?

c# xna jint

6
推荐指数
1
解决办法
1209
查看次数

如何在C#中使用Jint加载JavaScript文件?

我想使用Jint加载一个JavaScript文件,但我似乎无法搞清楚.文档说我可以做类似的事情engine.run(file1),但它似乎没有加载任何文件.我是否需要对文件名做些特别的事情?

这是我的JavaScript文件:

// test.js
status = "test";
Run Code Online (Sandbox Code Playgroud)

这是我的C#

JintEngine js = new JintEngine();
js.Run("test.js");
object result = js.Run("return status;");
Console.WriteLine(result);
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

如果我手动输入代码Run就行了.

object result = js.Run("return 2 * 21;"); // prints 42
Run Code Online (Sandbox Code Playgroud)

javascript c# jint

6
推荐指数
1
解决办法
4871
查看次数

IActiveScriptParse32 :: ParseScriptText内存泄漏

在C#中使用IActiveScriptParse32 :: ParseScriptText时,有人遇到过内存泄漏问题吗?我需要一个能够解析JavaScript代码的ScriptEngine。(除已使用的内存外,一切正常

问题是,传递的JavaScript代码越长,函数“ ParseScriptText”分配的非托管内存就越多。

我不知道如何释放分配的空间。我实际上在解析脚本后已经运行了Marshal.ReleaseComObject(parse32),但是以某种方式使用的内存不再减少。

.net javascript c# scriptengine jint

6
推荐指数
0
解决办法
155
查看次数

"Jint - Javascript Interpreter for .NET"可靠吗?

我在Codeplex 看过jint.看起来很有趣.你用过吗?你认为0.8.4稳定可用吗?(生产质量?)

.net javascript interpreter jint

5
推荐指数
1
解决办法
1578
查看次数

谓词序列化

假设我有一些 .NET 代码......

public class EventEnvelope
{
  public Dictionary<string, string> Headers { get; set; }
  public byte[] Body { get; set; }
}

public class EventSelector
{
  public Predicate<Dictionary<string, string>> Selector { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我想将此事件选择器发送到一个不是用 .NET 编写的事件代理。

我如何以跨平台的方式序列化这个谓词,以便用另一种语言编写的程序可以重建谓词并执行它?

我曾想过尝试编写一个序列化程序,它将谓词写出一些 javascript,然后让 rhino 或 jint 解释并在代理处执行它。

或者也许有一种实际的跨平台方式来表示我不知道的谓词?

你怎么认为?

.net serialization predicate jint

5
推荐指数
1
解决办法
1328
查看次数

RavenDB ETL 到 SQL,如何将整个文档('this')存储在 jsonb 列中?

在 RavenDB 5.4+ 中,我想使用 Raven 的 Npgsql 内置工厂配置一个SQL ETL 任务,将数据卸载到 PostgreSQL 数据库。我遇到的问题是我希望将整个文档 ( this) 存储在jsonb数据列中。

问题:如何实现将整个文档(例如this下面的 ETL 转换示例中的)存储到 Postgres?
我的目标是不必Foo手动指定对象的字段/列。

Postgres 表示例:

create table public.foo
(
    id   text,
    data jsonb
);
Run Code Online (Sandbox Code Playgroud)

RavenDB 中的 ETL 转换脚本示例:

loadToFoo ({
    id: id(this),
    data: this // <-- the issue
});
Run Code Online (Sandbox Code Playgroud)

这会导致异常:

Npgsql.PostgresException (0x80004005): 42804: 列“data”的类型为 jsonb,但表达式的类型为文本

我尝试过以下替代方案:

data: JSON.parse(this)

Error: 
    System.ArgumentException: Expected string but got Symbol
---
data: JSON.stringify(this)

Error:
    Npgsql.PostgresException (0x80004005): 42804: column "data" …
Run Code Online (Sandbox Code Playgroud)

c# postgresql npgsql jint ravendb

5
推荐指数
1
解决办法
127
查看次数

解释Jint如何工作

我想了解Jint是一个用C#编写的JavaScript Intrepreter是如何工作的.特别:

  1. 它如何利用Antlr?
  2. 哪些部分,如果有的话,或者这个项目是新颖的,哪些部分代表现有JS Intrepreter到C#.NET的端口?
  3. 一般来说,如何在C#中编写Javascript Intrepreter?例如,在技术和代码方面已有什么,你需要自己编写什么?
  4. 编写JS解释器最具挑战性的部分是什么?

javascript c# interpreter antlr jint

4
推荐指数
1
解决办法
3662
查看次数

如何在JINT Javascript端创建计时器

我正在使用JINT(https://github.com/sebastienros/jint)开发一个C#项目,我需要在我的JS上创建一个计时器,这样每次定时器时间设置结束时它就能在我的javascript上执行一个函数.我怎么能做到这一点?我使用了setInterval或setTimeout函数,但似乎它们不是JINT的一部分,因为它基于ECMASCRIPT,并且这些函数不是本机的.

谁能告诉我怎么能这样做?

谢谢!!

javascript c# timer jint

4
推荐指数
1
解决办法
970
查看次数