【问题标题】:JavaScript runtime error: Unable to get property 'activate' of undefined or null referenceJavaScript 运行时错误:无法获取未定义或空引用的属性“激活”
【发布时间】:2017-07-17 04:20:12
【问题描述】:

我收到以下错误:

0x800a138f - JavaScript 运行时错误:无法获取未定义或空引用的属性“激活”

在我的 UWP 应用程序中运行以下 javascript 行时:

Windows.UI.Xaml.Window.activate();
Windows.UI.Xaml.Window.current.activate();

Windows.UI.Core.CoreWindow.activate();

API Reference, Handle app activation Doc

【问题讨论】:

  • 这意味着 Windows.UI.Xaml.Window 未定义。这基本上是一个 NPE。在Xaml.Window 可用之前,您可能需要先初始化一些东西。
  • @Carcigenicate 奇怪的是,如果我只运行Windows.UI.Xaml.Window,我也不会例外。
  • 因为Windows.UI.Xaml.Window 什么都不做。它的计算结果为undefined,这本身并不是一个错误。您尝试在 undefined 上调用函数,但这是一个错误。
  • 我想说尽可能多地包含有关您的调试尝试的信息是一件好事。对不起,我已经用尽了我的想法。祝你好运。
  • Windows.UI.Xaml 命名空间在 js 中不可用。你想通过这些调用来达到什么目的?

标签: javascript uwp windows-store-apps


【解决方案1】:

Windows.Ui.Xaml 和您链接的文档与 HTML/JavaScript 应用程序无关。 Windows.UI.Xaml 仅在 Xaml 应用中使用。

要调用 activate 你需要一个 Windows.UI.Core.CoreWindow 对象,但 Windows.UI.Core.CoreWindow 本身在逻辑上是一个类而不是一个对象

您需要创建或获取类的实例才能调用激活。获取这样的对象调用CoreWindow的静态方法getForCurrentThread

var window = Windows.UI.Core.CoreWindow.getForCurrentThread();
Window.activate();

也就是说,您实际上要解决什么问题?你为什么叫这个? JavaScript 应用程序中的初始窗口激活由应用程序代码未显式调用的框架代码处理。除非您在应用程序中管理多个 CoreWindows,否则激活窗口的尝试将取决于它是否已经处于活动状态:您不能将窗口强加给用户。

【讨论】:

  • 问题似乎是 Windows.UI.Core.CoreWindow 未定义,因为我仍然得到错误:0x800a138f - JavaScript runtime error: Unable to get property 'getForCurrentThread' of undefined or null reference
  • 你为什么要打电话给这个,在哪里?你想解决什么问题?
  • 我尝试(至少)使用activated method 检查窗口是否被激活。或者,如果可能,将窗口放在前台。所有这一切,因为我正在调用仅在从前台调用它们时才允许的特定 API :)
  • 看起来 CoreWindow 没有投射到 JavaScript 中,但你不需要它来尝试两个帐户:1)你可以用 window.onfocus 跟踪焦点 2)你可以不要强迫您的应用程序进入前台。目前尚不清楚您要对剪贴板做什么,但您的问题表明您采用了错误的方法。我建议根据您的实际情况提出问题,而不是针对您在尝试实现目标时遇到的小问题
猜你喜欢
  • 2013-10-06
  • 2015-07-10
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 2014-02-22
  • 2015-02-27
  • 1970-01-01
相关资源
最近更新 更多