单页导航无法正常工作

Single page navigation not working properly

本文关键字:工作 常工作 导航 单页      更新时间:2023-09-26

我在适用于windows 8.1的WinJS应用程序中遇到单页导航问题:我的应用程序上有很多页面,其中许多页面都有相同ID的元素(例如,指向同一个名为"myPage"的页面的链接)。但奇怪的事情发生了:在"第1页"上,我有"第2页"answers"第3页"的链接。在"page2"上,我有一个链接到"page1"answers"page3"。如果我从"第1页"导航到"第2页",然后返回到"第1页面",最后导航到"页面3",那么最后一个链接不会运行。在"page1"的加载函数中,我设置了所有用于导航的事件处理程序,如以下示例

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

在"page2"中链接到"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

您的onClick()函数中缺少WinJS.UI.processAll()函数。基本上,将您的逻辑封装为该函数将解决问题。