jQuery Mobile多页面应用程序。如何在不离开应用程序的情况下检查history.back()是否可行?

时间:2014-10-17 10:29:41

标签: jquery-mobile

在我的jQuery Mobile多页面应用程序中,是否可以检查history.back()是否是应用程序中的页面?

我在应用程序的子页面上有一个链接,我想执行history.back(),如果它引用应用程序中的子页面,或者只是明确地链接到应用程序主页面。

我想做点什么

if(canGoBack) {$.mobile.back();} else {$.mobile.changePage('#main');}

1 个答案:

答案 0 :(得分:0)

在应用程序的初始加载时,在document.ready上的历史状态对象中存储一个标志:

$(function() {
    history.replaceState($.extend(history.state, {root:true}));
});

从那时起,每当我们想要检查是否可以返回时,只需看看我们设置的标志是否在当前历史状态对象中。如果是,我们在初始页面上,无法返回:

function canGoBack() {
    return !(history.state && history.state.root);
}

HTML:

<a href="javascript:if(canGoBack) {$.mobile.back();} else $.mobile.changePage('#main');}">Back</a>