修复$ .mobile.navigate前进历史问题?

时间:2014-04-30 09:31:02

标签: jquery jquery-mobile cordova windows-store-apps

我正在使用phonegap处理Windows 8应用程序。目前我在单个html页面中使用jquery mobile进行所有基于ajax的页面导航。

我正在使用Jquery mobile 1.4.2稳定版。

考虑一下,我有单页index.html,我的子页面为#page1,#page2和#page3,我将使用

进行导航
$.mobile.navigate();

在我的情况下,着陆页是index.html(或)index.html#page1并使用$ .mobile.navigate("#page2")我遍历到index.html#page2我的地方历史堆栈如下:

Current:ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page2
Stack: (active index = 1 -previous index: undefined )
0-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html
1-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page2

再次从这里我使用$ .mobile.navigate("#page3")遍历index.html#page3,其中我的历史堆栈如下所示

Current:ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3
Stack: (active index = 2 -previous index: undefined )
0-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html
1-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page2
2-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3

从那里我使用window.history.back();遍历index.html#page2我的历史堆栈如下

Current:ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page2
Stack: (active index = 1 -previous index: 2 )
0-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html
1-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page2
2-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3

这是我的问题开始的地方。如果我尝试使用$ .mobile.navigate("#page3")遍历index.html#page3,那么历史记录堆栈会附加一个新的/重复的条目,如下所示,它会折叠堆栈

Current:ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3
Stack: (active index = 3 -previous index: 2 )
0-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html
1-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page2
2-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3
3-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3

所以当我使用window.history.back();页面遍历到index.html#page2,没有任何操作,它会在几秒钟内遍历到index.html#page1。页面index.html#page2可见时记录的历史堆栈如下

Current:ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html
Stack: (active index = 0 -previous index: 1 )
0-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html
1-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page2
2-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3
3-ms-appx://9616f46d-1e09-4e01-8e2a-50c58b4967c5/www/index/index.html#page3

有没有办法/解决方法来修复上述重复追加的条目到历史堆栈并创建一组一致的页面导航?或者有更好的替代方式进行页面导航吗?

0 个答案:

没有答案