问题标签 [chakra]

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 投票
4 回答
210 浏览

c# - 是否可以在 C# 中创建不可装箱的结构

一些数据的副本不属于堆(没有特殊处理)。例如,堆栈上的JavaScriptValue结构在与 Chakra JavaScript 引擎的互操作方面做得很好。

但据我了解,将这样的值存储在托管堆上(没有正确的引用计数)会导致可能的悬空引用。有没有办法将这样的 ac# 结构声明为不可装箱

澄清,如果在类型上生成任何装箱操作,我希望 c# 编译器生成错误消息。

参考:请参阅MSDN JSAddRef 参考,其中说:

这只需要在不会存储在堆栈中某处的 JsRef 句柄上调用。调用 JsAddRef 确保 JsRef 所引用的对象在调用 JsRelease 之前不会被释放。

我从中得知,Chakra 可能正在使用“保守的垃圾收集”方法,使得基于堆栈的 JsRef 句柄不需要 JsAddRef/JsRelease。 我想使用一个类(而不是结构)来包装堆上的 JsRef 句柄,并有一个转换操作来调用 JsAddRef,并使用 IDisposable 模式来调用 JsRelease。

0 投票
1 回答
242 浏览

javascript - 将 JS 引擎嵌入到 Windows Phone 应用程序中

我正在寻找一种在我的 Windows Phone 应用程序中使用 JavaScript 引擎的方法,但我不想构建 Web 应用程序。另外,我很难找到对这些信息的官方支持..

我发现这个 hack可以在 WP 应用程序中注入 Chakra,但应用程序不会通过 Microsoft Windows Store 认证要求,所以这是不可接受的。

这是我了解 WP 应用程序的第一步,如果我的问题很简单,我很抱歉,但我想知道,有没有办法正确地做到这一点?

问候,

0 投票
1 回答
323 浏览

javascript - 如何在 WinRT C# 应用程序中执行 Javascript 代码?

我正在用 C# 编写一个 WinRT 应用程序。

我想执行一些Javascript代码。在我的情况下不需要整个 WebView,我只需要与 Javascript 虚拟机交互。C# 代码将调用 Javascript 函数并将一些对象导出到 Javascript 端。

我知道有 JsRT,Chakra 的 C API,Internet Explorer 使用的 jsvm。但据我所知,JsRT 不适用于 WinRT。WinRT 下不允许使用其他虚拟机。

所以,问题是:甚至可以从 C# 代码调用 Javascript 代码吗?如果没有,等待 WinRT 的 JsRT 发布是唯一的选择吗?

0 投票
0 回答
133 浏览

javascript - 在 C#XAML 应用程序中使用 javascript 加载离线 html

我想开发一个 C#XAML 的混合 Windows 10 应用程序,它可以使用 javascript 加载离线 HTML。我已经使用 Webview 控件来加载我的 html,但 Multitouch 似乎无法正常工作。我还构建了一个 Javascript 应用程序来加载我的 html。通过 Javascript-Application 我没有多点触控问题,但我更喜欢使用 XAML 在 C# 中开发 UI 和逻辑。

所以也许有人知道,我可以将 HTML 和 javascript 直接加载到 C#XAML 应用程序中的内置 Javascript-Engine 中吗?

提前致谢。

0 投票
1 回答
8493 浏览

javascript - IE11如何填充window.location.origin?

我在Internet Explorer 11非生产环境中遇到问题

window.location.originundefined

但是,在生产环境中,这个值实际上返回

window.location.origin = http://www.myproductionwebsite.com

这个问题只存在于 Internet Explorer 中,并且在生产和非生产环境中的 Chrome 和 Firefox 中运行良好,这让我相信它是IE11中的Chakraorigin JavaScript 引擎填充的方式。

我还查看了生产和非生产环境中的请求和响应标头,所有参数都是相同的。

Internet Explorer 11window.location.originChrome 或 Firefox 的计算方式有何不同?

0 投票
1 回答
171 浏览

node.js - 我的 node.js 代码如何查看它是否在官方 nodejs、iojs、jxcore 或 node-chakracore 下运行?

由于各种原因,现在有几个 nodejs 的分支。

为了让我的节点代码查看它在哪个分叉下运行,目前最好的方法是什么?

我知道的叉子是:

  • 官方nodejs发布
  • iojs - 我想它现在已经被弃用了,因为它重新加入了官方的 nodejs,但它仍然很有趣
  • JXcore - 支持多个 CPU/内核的 fork;多个 JS 引擎,包括 V8、Mozilla 的 SpiderMonkey 和微软的 ChakraCore;和 js 应用程序的打包,因此应用程序的用户不需要使用 npm
  • 微软的 nodejs 分支,通过 V8 兼容 shim 使用 Edge 浏览器的 ChakraCore JS 引擎

我还问了一个关于检测正在使用哪个 JS 引擎的配套问题。这个问题只是关于检测正在使用哪个 fork。)

0 投票
1 回答
843 浏览

node.js - 如何从 nodejs 检测它正在运行哪个 JavaScript 引擎?

现在有几个 nodejs 的分支,其中一些支持谷歌 V8 引擎以外的 JavaScript 引擎。

为了让我的节点代码查看它在哪个 JS 引擎下运行,目前最好的方法是什么?

我知道的引擎是:

  • Google 的V8 - 官方node.jsiojs fork支持的唯一引擎。JXcore支持的引擎之一。
  • Mozilla 的SpiderMonkey - JXcore支持的引擎之一。
  • Microsoft's ChakraCore - Microsoft的 node.js 端口支持的引擎,显然是JXcore支持的引擎之一,尽管我还没有让那个引擎工作。

我问了一个单独的问题,关于检测正在使用哪个分叉的 nodejs。这个问题只是关于检测 JS 引擎。)

0 投票
2 回答
424 浏览

javascript - JXcore 可以在 Windows 7 上与 ChakraCore 一起使用吗?

我已经下载了适用于 Windows 的最新 JXcore 安装程序,在安装它时,我可以选择 V8(Chrome 的 Javascript 引擎)或 SpiderMonkey(Firefox 的 JavaScript 引擎),但不能选择 ChakraCore(来自 Microft 的 Edge 浏览器的 JavaScript 引擎的 OSS 版本)。

ChakraCore 版本的 JXcore 是否只能在 Windows 10 下运行?或者它只是没有作为安装程序提供,需要从源代码构建?

现在我知道 ChakraCore 可以在 Windows 7 上运行,因为我还拥有使用 ChakraCore 引擎的 Microsoft 的 nodejs 端口。

在 Win7 下获取带有 Chakra 的 JXcore 缺少什么?

0 投票
0 回答
339 浏览

javascript - 为 WebGL 示例嵌入 ChakraHost (c#)

我已经研究了涉及嵌入 javascript 框架 (paper.js) 以通过 ChakraHost 的 JsBridge 实现将输出绘制到 XAML 的 CanvasControl 的示例。

要包含 paper.js 框架和调用框架的 javascript(例如 paper.js 的蝌蚪示例),我们只需要这些语句:

要使用例如WebGL course3嵌入 WebGL javascript 框架,除了包含 javascript 库和调用代码(例如 course3.js)之外,还需要这些着色器代码。

问题:

(1) 如何将这些着色器 javascript 代码包含到第 3 课 webgl jsbridge c# 示例中?

2016 年 9 月 14 日修订 当我在 2016 年 2 月发布此问题时,我还没有弄清楚 ChakraBridge 提供的示例如何仅限于 Canvas2D。我最近重新审视了这个问题,并意识到要使 ChakraBridge 与 WebGl.js 或派生框架(例如 Three.js)一起工作,需要解决多个差距以针对WebGL 3D 上下文

  1. 对于 UWP,第一步是通过 Microsoft Angle 让 c# 的 OpenGL ES 工作
  2. 使用 OpenGL ES C# 接口开发 WebGL4UWP 库,然后使用WebGL 第 3 课进行测试
  3. 然后将 (b) 带到 ChakraBridge 来解决启动这个项目的问题是可行的。
0 投票
1 回答
718 浏览

javascript - Chakra Host Samples 不执行 JavaScript 代码

我刚开始玩 Windows Dev,如果这个问题对你来说似乎不合逻辑或不合法,请原谅我。

我正在Microsoft GitHub 上尝试这些 Chakra Host 示例,当输入 js cond like console.logoralert时,我收到类似的错误'console' is undefined。我是否遗漏了一些明显的东西。我尝试查找,但遗憾的是找不到相关文档或代码示例。

任何帮助/指针表示赞赏。 脉轮样本