单页导航无法正常工作

Single page navigation not working properly

我在 windows 8.1 的 WinJS 应用程序中发出单页导航问题: 我的应用程序上有很多页面,其中许多页面都有具有相同 ID 的元素(例如,link 指向名为 "myPage" 的同一页面)。但是奇怪的事情发生了: 在 "page1" 上,我有 link 到 "page2" 和 "page3"。在 "page2" 上,我有一个 link 到 "page1" 和 "page3"。 如果我从 "page1" 导航到 "page2",然后返回到 "page1",最后导航到 "page3",最后的 link 不会 运行。 在 "page1" 的加载函数上,我设置了所有用于导航的事件处理程序,就像这个例子

document.getElementById("page3").onclick = function () {
    WinJS.Navigation.navigate("/pages/page3/page3.html");
};

"page2" 中 link 到 "page3" 的加载函数中存在相同的代码 元素具有相同的 ID。 如果我直接导​​航到 "page3" 而没有经过 "page2" 它工作正常。

有没有办法在不更改所有元素 id 的情况下避免这个问题?

您必须等待,直到所有资源都加载完毕。

    WinJS.UI.processAll().done(function () {
        document.getElementById("page3").onclick = function () {
            WinJS.Navigation.navigate("/pages/page3/page3.html");
        };
    });

更多信息:https://msdn.microsoft.com/es-es/library/windows/apps/hh440975.aspx