【问题标题】:Chakra Host Samples does not execute JavaScript codeChakra Host Samples 不执行 JavaScript 代码
【发布时间】:2016-03-08 05:10:05
【问题描述】:

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

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

感谢任何帮助/指针。

【问题讨论】:

  • console 是什么(引擎在此处的 UWP 应用程序中运行)?例如,您使用的 console 是 Web 浏览器/节点功能,而不是 JavaScript 的一部分。您可以公开自己的方法/对象以供 JavaScript 运行时使用。
  • 我只是认为这是一个 JS 解释器。您能否指出一些有关如何编写这些功能的文档或 API 指南或示例?
  • 这是一个 JavaScript 执行环境。我已经发布了一个答案,其中包含一些应该有帮助的参考资料。

标签: javascript c# win-universal-app windows-applications chakra


【解决方案1】:

console 是一种网络浏览器(和节点)功能。它在 JavaScript 中不存在。所以,你需要添加它(或类似的东西)。

Github 上的 Win32 Edge/Chakra 主机代码中有一个示例,演示了如何向全局命名空间添加回调函数。

Example callback for Echo

你应该能够做类似的事情。你也可以expose existingWindows 运行时命名空间到 Chakra。

    private static void DefineHostCallback(JavaScriptValue globalObject, string callbackName, JavaScriptNativeFunction callback, IntPtr callbackData)
    {
        var propertyId = JavaScriptPropertyId.FromString(callbackName);

        // Create a function
        var function = JavaScriptValue.CreateFunction(callback, callbackData);

        // Set the property
        globalObject.SetProperty(propertyId, function, true);
    }

【讨论】:

  • 感谢您的回答,我明白了这个概念。我在这里寻求更多帮助-I want to invoke/open a browser window from a native windows universal app and this is why I am looking into the Chakra Engine.您能否告诉我这是否可以通过您在上面发布的内容来实现?另外,您能否指出正确的 API 或编写示例代码?在 Windows 编程方面,我远低于新手
  • 不清楚您要做什么。从你的 UWP 应用启动 URL?
  • 简而言之,是的。我希望能够从 UWP 应用程序在浏览器窗口中打开 URL。另外,我有一个 JS fie,可以根据需要打开 url 和窗口 - 如果有办法以某种方式从 UWP 嵌入/执行该 JS 文件,我认为它应该也可以工作。现在,我在浏览器上的做法是放一个 html 按钮并执行 JS 文件,它会打开另一个浏览窗口。最终目标是能够在浏览器窗口中打开 URL。它只能是浏览器。
  • 使用我的答案中的链接和代码,您可以公开一种从 JavaScript 启动 URL 的方法。
猜你喜欢
  • 1970-01-01
  • 2012-12-09
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
相关资源
最近更新 更多