Javascript 运行时错误:“应用程序未定义”

Javascript Runtime Error: 'Application is undefined'

本文关键字:未定义 应用程序 运行时错误 Javascript      更新时间:2023-09-26

我需要知道这是否正确。我刚刚开始使用 WinJS 进行应用程序开发。我已经确定了问题的根源并摆脱了它,但我不知道这是否是正确的方法。请帮忙!

// Optimize the load of the application and while the splash screen is
// shown, execute high priority scheduled work.
ui.disableAnimations();
var p = ui.processAll().then(function () {
    //return nav.navigate(nav.location || Application.navigator.home, nav.state);
        return nav.navigate(nav.location || app.local, nav.state)
    }).then(function () {
        return sched.requestDrain(sched.Priority.aboveNormal + 1);
    }).then(function () {
        ui.enableAnimations();
    });

问题出在第一个.then().注释的行是默认行,我已经更改了它以使应用程序正常工作。我完全不知道它是什么。请告诉我这意味着什么以及更改了什么。顺便说一下,"app "是WinJS.Application,应用程序是home属性所在的navigator.js中的 WinJS 命名空间。

此错误表明在执行此代码时未加载 navigator.js。应用程序命名空间完全是任意的,与 WinJS.Application 无关,仅在 navigator.js 中定义,因此如果未加载该文件,则该命名空间将不存在。

顺便说一下,WinJS 命名空间只是 JavaScript 中模块模式的形式化,可帮助您防止全局命名空间变得混乱。声明像 navigator 这样的命名空间.js可以做到:

 WinJS.Namespace.define("Application", {
     PageControlNavigator: WinJS.Class.define( 

只需在全局命名空间中创建一个名为"Application"的单个对象,然后为其定义成员。(顺便说一下,您可以将"应用程序"更改为您想要的任何内容。navigator 中没有其他任何东西.js依赖于它,而 navigator.js 是来自 Visual Studio 中的应用程序模板的东西,而不是 WinJS 本身的一部分。

所以再一次,我的怀疑是你的默认路径没有(或任何正确的路径.html,它的路径不正确,或者它可能在其他代码尝试执行后加载。尝试在 WinJS.Namespace.define 上设置断点,并查看该文件是否已加载以及断点是否命中。