2017-02-26 2 views
0

Je reçois l'erreur suivante:erreur d'exécution JavaScript: Impossible d'obtenir la propriété « activer » de référence non définie ou null

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

lors de l'exécution de la ligne suivante de javascript dans mon UWP App:

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

ou

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

API Reference, Handle app activation Doc

+0

Cela signifie que «Windows.UI.Xaml.Window» n'est pas défini. C'est fondamentalement un NPE. Vous devrez peut-être initialiser quelque chose avant que Xaml.Window devienne disponible. – Carcigenicate

+0

@Carcigenicate Bizarre est que si je ne lance que 'Windows.UI.Xaml.Window' je ne reçois aucune exception. – jonhue

+0

Parce que 'Windows.UI.Xaml.Window' ne fait rien. Il évalue à 'undefined', ce qui n'est pas une erreur en soi. Vous essayez d'appeler une fonction sur 'undefined', ce qui est une erreur. – Carcigenicate

Répondre

1

Windows.Ui.Xaml et les documents que vous avez associés ne sont pas pertinents pour les applications HTML/JavaScript. Windows.UI.Xaml est utilisé uniquement dans les applications Xaml.

Pour appeler activer Vous avez besoin d'un objet Windows.UI.Core.CoreWindow, mais Windows.UI.Core.CoreWindow lui-même est logiquement une classe pas un objet

Vous devez créer ou acquérir une instance de la classe appeler activer. Pour obtenir une telle méthode statique est un appel objet CoreWindow getForCurrentThread

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

Cela dit, quel problème vous en train d'essayer de résoudre? Pourquoi appelez-vous cela? L'activation initiale de la fenêtre dans les applications JavaScript est gérée par un code de structure non appelé explicitement par le code de l'application. Si vous ne gérez pas plusieurs CoreWindows dans votre application, les tentatives d'activation de la fenêtre dépendront de son activation: vous ne pouvez pas forcer votre fenêtre sur l'utilisateur.

+0

Le problème semble être que 'Windows.UI.Core.CoreWindow 'est indéfini car j'obtiens toujours l'erreur:' 0x800a138f - Erreur d'exécution JavaScript: Impossible d'obtenir la propriété 'getForCurrentThread' de référence non définie ou nulle ' – jonhue

+0

Pourquoi essayez-vous d'appeler ceci et où? Quel problème essayez-vous de résoudre? –

+0

J'essaie (au moins) de vérifier si la fenêtre est activée ou non en utilisant la méthode ['activated'] (https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Core.CoreWindow #Windows_UI_Core_CoreWindow_Activated). Ou, si possible, mettez la fenêtre au premier plan. Tout ça, parce que j'appelle des API spécifiques qui ne sont autorisées que lorsqu'on les appelle depuis le premier plan :) – jonhue