-1

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

4

1 回答 1

0

在 default.js 中,已经有对WinJS.Navigation的引用,因此您可以执行以下操作:

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

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

如果您希望在真正将页面加载到 DOM 时发生某些事情,您可以在页面中添加覆盖加载,然后调用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 。

于 2013-01-16T05:43:42.977 回答