问题标签 [jint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5750 浏览

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

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

这是我的 JavaScript 文件:

这是我的 C#

如果我手动输入代码,Run它就可以工作。

0 投票
2 回答
2116 浏览

exception - 从异常返回的 JNI int 方法

假设我有一个这样的 Java 类:

假设 foo() 方法正在执行一些 JNI 调用,并且其中一个调用失败(IE,抛出异常)。然后我想从 JNI 代码返回并在 Java 中抛出异常。例如:

问题是那return NULL不是一个jint。例如,在 Android 中,我会在编译时收到此警告: warning: return make integer from pointer without a cast

现在的问题是:如果在返回 jint 的 JNI 方法中抛出异常,我应该返回什么?

0 投票
1 回答
892 浏览

c# - 读取文本文件时出现 C#SecurityException

我正在编写 ac# 程序(具体来说是一个 IRC 机器人)并使用脚本库 Jint(http://jint.codeplex.com/)。我有一个链接到它的外部命令,当被调用时,它会从不同的文件中读取 .js 文本流。阅读第一个文件可以正常工作,但是当我阅读另​​一个文件时,我得到的消息是:

抛出异常的 c# 函数是:

0 投票
2 回答
334 浏览

c# - Mac OS X / Mono 下的 Ldfld 问题,可能是 Mono 的 bug

我正在使用第 3 方库 JInt(JavaScript 解释器),它在我切换到 Mac OS X 之前运行良好,之后我不断收到 ArgumentNullExceptions,经过一番调查,我发现 JInt 使用动态代码生成制作某种 Js-Clr 桥梁。该方法最后有以下说明:

以下是这些行的执行方式(此处为全尺寸截图)

在此处输入图像描述

可以清楚地看到,fieldInfo参数不为空,但在执行这些行时,请注意 LDFLD 没有参数!(此处为全尺寸截图):

在此处输入图像描述

我当前将要执行的语句是 Ldnull,我执行“Step In”(在 Ldnull 上)并且在 Ldfld 上发生 BANG 异常(此处为全尺寸屏幕截图)::

在此处输入图像描述

有什么建议么?

0 投票
1 回答
1072 浏览

javascript - 向 Jint 公开特定的命名空间

我想允许在 Jint 中运行的脚本访问我已设置为命名空间的预先存在的 API。我的意思是我有一个包含 API 的命名空间,包括其他命名空间。我不想让脚本访问其余代码——包括 .Net 框架。

我已经在 J​​int 论坛上发布了这个:http: //jint.codeplex.com/discussions/310772 但是,没有不尊重他们,但论坛似乎不是很活跃,我希望能够回答这个问题尽快,所以我也在这里发帖。

不久前,ThomasMaierhofer 实现了与此类似的东西,我可能可以修改以在这里解决这个问题:http: //jint.codeplex.com/discussions/211291

对于我缺乏经验的大脑来说,这似乎是向引擎公开 API 的一种非常巧妙的方式,但我以前从未见过这样的做法。

所以我的问题是:这行得通吗?如果是这样,为什么以前没有这样做过?有什么方法可以在不修改 Jint 源的情况下实现这一点,以便在新版本可用时轻松更新 Jint .dll?

编辑: 我当前的 API 由多个类组成,每个类都有多个功能。我可以使用 SetParameter 完全公开这些类的特定实例。Jint 还有一个 AllowClr 属性,它允许脚本通过完全限定名称空间来访问 CLR。这是他们提供的示例代码,演示如果将其设置为 false 会发生什么。来源: http://jint.codeplex.com/wikipage?title= Using%20.NET%20classes%20from%20scripts

我想允许这样做,但仅限于特定的命名空间,而不是其他所有内容。我希望这能让问题更清楚。

谢谢你的帮助,

山姆。

PS 我在 VB.Net 工作,但涉及 C# 的答案很好。

0 投票
1 回答
1171 浏览

javascript - 是否可以在带有字典的 JINT 中使用“javascript dot notation”

我有一组 JavaScript 命令,例如doc.page == 5,并且我正在使用JINT在我的 C# 应用程序中执行脚本。

但是,在我的 C# 代码中,doc是一个Dictionary<string, object>. 因此,我不能以这种方式使用点符号。

我当前的解决方案非常低效:我转换doc为 JSON 字符串,并将其添加到我的脚本中。它Dictionary非常大,所以这比执行简单命令的开销要大得多。这是一些示例代码:

有没有办法更有效地做到这一点?

0 投票
2 回答
347 浏览

xamarin.ios - 单点触控 Jint

我只是想知道 Jint(.NET 的 Javascript 解释器)是否适用于 MonoTouch。我有一个关于 MonoDevelop 的项目,我在其中使用 Jint 库,我只是想弄清楚我是否可以将它与 MonoTouch 一起使用。有没有我可以研究如何使用它的教程?

0 投票
1 回答
791 浏览

xamarin.ios - 尝试将 Jint 引擎与 Monotouch 一起使用

我想在 Monotouch 上尝试一下 Jint,虽然 Jint-Mono 项目(不是 monotouch 版本,而是单声道)在我的 mac 上工作,但我无法让它在 iPhone 上工作。我刚刚创建了这个类:

每当我尝试调用 JintObject 方法时,我都会收到异常错误:

我究竟做错了什么?

0 投票
1 回答
17936 浏览

javascript - Load a DOM and Execute javascript, server side, with .Net

I would like to load a DOM using a document (in string form) or a URL, and then Execute javascript functions (including jquery selectors) against it. This would be totally server side, in process, no client/browser.

Basically I need to load the dom and then use jquery selectors and text() & type val() functions to extract strings from it. I don't really need to manipulate the dom.

I have looked at .Net javascript engines such as Jurassic and Jint, but neither support loading a DOM, and so therefore can't do what I need.

I would be willing to consider non .Net solutions (node.js, ruby, etc) if they exist, but would really prefer .Net.

edit The below is a good answer, but currently I'm trying a different route, I'm attempting to port envjs to jurassic. If I can get that working I think it will do what I want, stay tuned....

0 投票
1 回答
2139 浏览

c# - 使用 Jint/Trap console.log 调用从 C# 运行 javascript

我正在使用 JINT 将 javascript 文件加载到一个小型 C# 应用程序中,并使用 C# 中的一些参数调用许多方法。我想获取这些方法的返回值。这就是我正在做的事情:

javascript方法如下:

当我运行上面的代码时,我可以在 VisualStudio 控制台中看到“完成”,但是调用发送“你好!” 到 AS3 控制台无处可寻。它甚至不在 flashlog.txt 文件中。事实上,我认为 JINT 会引发错误,因为它可能不是存在的“控制台”对象,因为没有浏览器。

如何捕获从在 JINT 中运行的 javascript 发送到控制台的内容?JINT 下载站点上有一个示例,其中包含 SystemConsole' 或其他内容(不是 System.Console),但我没有成功地让它工作。我希望能够将调试代码添加到 javascript 并在 VisualStudio 的控制台中看到它。

有任何想法吗?这使得调试我正在做的事情变得非常困难。. .

提前致谢。