在我的jQuery Mobile多页面应用程序中,是否可以检查history.back()是否是应用程序中的页面?
我在应用程序的子页面上有一个链接,我想执行history.back(),如果它引用应用程序中的子页面,或者只是明确地链接到应用程序主页面。
我想做点什么
if(canGoBack) {$.mobile.back();} else {$.mobile.changePage('#main');}
答案 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>