我正在开发一个很酷的 C# 应用程序,它在我们的模型层中大量使用 JS。我们想使用 IE9 Chakra Javascript 引擎来提高速度。
问题:
- 我可以在 C# 中使用 Chakra,并将 JS 对象作为 COM 对象进行交互吗?(在 JS 对象上调用函数)
- 我可以将 Chakra 与 IE9 分开安装吗?(有些用户没有安装 IE9,所以如果他们不必安装 IE9,只需安装 Chakra 会更容易)。
非常感谢您的专业知识。
我正在开发一个很酷的 C# 应用程序,它在我们的模型层中大量使用 JS。我们想使用 IE9 Chakra Javascript 引擎来提高速度。
问题:
非常感谢您的专业知识。
是的,您可以通过 COM 从 C# 与在 Chakra 中运行的 Javascript 逻辑进行交互。
特别是,在 ac# 程序中,您可以通过 IActiveScript 启动 Chakra,将一些 Javascript/ES5 代码加载到其中,然后通过 COM IDispatch 指针调用该 Javascript 代码中定义的方法。
有关的:
据我所知,不,不安装 IE9 就无法安装 Chakra。但是,对于没有 Chakra 的计算机,您可以设计您的 C# 应用程序以优雅地降级以使用现有的 JScript 引擎。
[更新] 根据 Cheeso 的回答,您似乎可以使用 IE9 的 JS 引擎[/更新]。但是我发现V8 JavaScript 引擎(Chrome 的 JS 引擎)提到您可以在 C++ 应用程序中使用 V8 引擎。按照V8 嵌入器指南了解更多信息。我没有找到他们提到通过 COM 接口公开 V8 功能的任何参考,因此您可能无法从 C# 使用它。