2017-02-26 32 views
0

我收到以下錯誤:的JavaScript運行時錯誤:無法獲取屬性未定義或空引用「激活」

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

0x800a138f - JavaScript runtime error: Unable to get property 'activate' of undefined or null reference

運行的JavaScript在我UWP應用中的以下線的時候

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

API ReferenceHandle app activation Doc

+0

這意味着'Windows.UI.Xaml.Window'是未定義的。這基本上是NPE。在Xaml.Window變爲可用之前,您可能需要先初始化某些內容。 – Carcigenicate

+0

@Carcigenicate奇怪的是,如果我只運行'Windows.UI.Xaml.Window',我不會例外。 – jonhue

+0

因爲'Windows.UI.Xaml.Window'什麼都不做。它評估爲「未定義」,這本身並不是一個錯誤。你試圖在'undefined'上調用一個函數,這是一個錯誤。 – Carcigenicate

回答

1

Windows.Ui.Xaml和您鏈接的文檔與HTML/JavaScript應用程序無關。 Windows.UI.Xaml僅用於Xaml應用程序。

要調用激活你需要一個Windows.UI.Core.CoreWindow對象,但Windows.UI.Core.CoreWindow本身在邏輯上是一類不是對象

您需要創建或收購的類的實例致電激活。爲了得到這樣的對象調用CoreWindow的靜態方法getForCurrentThread

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

這就是說,有什麼問題,你實際上是試圖解決?你爲什麼打這個電話? JavaScript應用程序中的初始窗口激活由未由應用程序代碼明確調用的框架代碼處理。除非您在應用程序中管理多個CoreWindows,否則嘗試激活窗口將取決於它已處於活動狀態:您無法強制用戶使用窗口。

+0

問題似乎是'Windows.UI.Core.CoreWindow '是未定義的,因爲我仍然得到錯誤:'0x800a138f - JavaScript運行時錯誤:無法獲取未定義的屬性'getForCurrentThread'或空引用 ' – jonhue

+0

你爲什麼試圖調用它並在哪裏?你想解決什麼問題? –

+0

我嘗試(至少)使用['activated'方法]檢查窗口是否已激活(https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Core.CoreWindow #Windows_UI_Core_CoreWindow_Activated)。或者,如果可能的話,把窗戶放在前臺。所有這一切,因爲我打電話給特定的API,只允許從前臺調用它們時:) – jonhue

相關問題