应用程序级别的PageLoaded事件处理程序

时间:2013-01-16 04:06:28

标签: javascript windows-8

在我的Windows 8应用程序中,我需要在加载页面时运行一些代码,但我需要在default.js文件中的应用程序级别运行它。当页面加载到DOM中时,是否可以使用一般事件来附加?

1 个答案:

答案 0 :(得分:0)

在default.js中,已经有WinJS.Navigation的引用,所以你可以这样做:

nav.addEventListener("navigated", function (e) { 
     console.log('loaded a new page ' + e.detail.location); 
});

当您从一个页面导航到另一个页面而不是实际加载到DOM中时,这将触发(不确定您的具体用途)。

如果您希望在将页面真正加载到DOM时发生某些事情,可以在页面中添加覆盖load,然后在WinJS.Application上调用方法(例如unload是您已生成的页面代码的一部分)

    load: function()
    {
        WinJS.Application.doSomething();
    },

    unload: function () {
        this._items.dispose();
    },

在app.js中的应用程序代码中,你有

    app.doSomething = function () { console.log("I did something"); }

虽然我正在打猎,但这里有一个小故障。一旦我覆盖load,我就会在第二次调用时看到HierarchyRequestError。