Win8 JS App:如何防止后向导航?无法设置WinJS.Navigation.canGoBack

Sea*_*art 2 navigation appbar windows-8 winjs

对于Windows 8的开发来说相当新,我正在开发一款具有相当扁平模型的应用程序.我看了看,但似乎无法找到如何设置WinJS页面以防止向后导航的明确答案.我已经尝试深入研究API,但它没有就此问题发表任何意见.

我试图使用的代码是

WinJS.Navigation.canGoBack = false;
Run Code Online (Sandbox Code Playgroud)

没有运气,它一直在抱怨只读属性,但是,没有setter方法可以改变它.

提前谢谢,〜肖恩

Jim*_*eil 7

canGoBack只有一个吸气剂(定义于base.js),它反映了背斜的缺席或存在; 即nav.history.backstack.

按钮本身的外观由相关按钮DOM对象上的disabled属性控制,该对象又是控制可见性的CSS选择器的一部分.因此,如果您修改后退按钮的显示,请注意导航管道也是如此.

可以明确地设置backstack; 有一个示例导航和导航历史示例 ,包括恢复历史记录以及使用beforenavigate阻止导航,使用以下代码:

    // in ready
    WinJS.Navigation.addEventListener("beforenavigate", this.beforenavigate);


    //
    beforenavigate: function (eventObject) {
        // This function gives you a chance to veto navigation. This demonstrates that capability
        if (this.shouldPreventNavigation) {
            WinJS.log && WinJS.log("Navigation to " + eventObject.detail.location + " was prevented", "sample", "status");
            eventObject.preventDefault();
        }
    },
Run Code Online (Sandbox Code Playgroud)