我制作了一个在两个页面之间切换的 jquery 移动应用程序。在 pagebeforeshow 事件中,我用来自 JSON 对象的数据填充了一些 dom 元素。当用户点击后退按钮时,我会从历史堆栈中获取特定页面的数据 ID(我将其放在第一个 onPageBeforeShow 事件中)。
onPageBeforeShow: function() {
// if fact id already exists in history stack take it from there (only happens when "back" is pressed)
var urlh = $.mobile.urlHistory;
if( "factId" in urlh.stack[urlh.activeIndex] ) {
// load
cp10.score.currentFactId = urlh.stack[urlh.activeIndex].factId;
} else {
// store fact id in history object
urlh.stack[urlh.activeIndex].factId = cp10.score.currentFactId;
}
... go on and fill dom elements with current id
这适用于后退按钮。当我再次向前冲时,$e.mobile.history.activeIndex 元素出现了一个有趣的行为。例如,我在应用程序中前进了三个页面,因此 activeIndex 为 3。然后使用浏览器的后退按钮我去...
... back:activeIndex 为 2 back:activeIndex 为 1 back:activeIndex 为 0 forward:activeIndex 为 1 forward:activeIndex 为 0
那应该是2,我想。我很困惑。
浏览器前进按钮按下导致activeIndex减少的原因可能是什么?