繁体   English   中英

从JQuery Mobile历史记录中删除页面,以便“返回”按钮绕过它

[英]Remove page from JQuery Mobile history such that 'Back' button bypasses it

我没有看过jQuery Mobile文档,所以希望这里有人解决了我到目前为止找不到的方法。

我有一个以常规方式投放的jQuery移动页(称为“项目显示”)。 它包含有关特定项目的信息。 此页面上有一个按钮,可将用户带到一个页面,在该页面上他/她可以在显示的项目上做笔记(基本上是大文本区域)。 单击注释页面上的“保存”,开机自检并重定向回项目显示页面。

我的问题是,一旦保存了便笺,我希望项目显示页面上的“返回”按钮链接回到用户在首次访问项目显示页面之前所在的页面,而不是默认的采取用户行为返回注释页面(从技术上讲,这是用户访问的最后一页)。

因此,当前行为:

项目列表页面->项目显示页面->单击“在项目上编辑注释”->注释页面->单击“保存”->项目显示页面->单击“返回”->注释页面。

我想用“返回”代替最后一步,将用户带到项目列表页面。

有这样的运气吗? 感谢您提供的所有指导

您可以更改页面而不将其保留在浏览器历史记录中,如下所示:

$.mobile.changePage('#page', {reverse: false, changeHash: false});

这基于此答案: jQuery mobile,删除上一页

我遇到了与您相同的问题,并且我创建了一种方法,这是唯一可行的方法。 如果有人知道更好,那将大有帮助! 因此,让我解释如何解决(这有点复杂,但对我有用)。

您将需要覆盖“后退”按钮,以按所需html中的X页回滚历史记录,例如:

$(document).ready(function() {
    $('[data-rel=back]').click(function() {
        window.history.go(-4);
        return false;
    });
});

但是,4实际上是会话中的导航计数器变量。

如果您使用jsf,它将像这样:

window.history.go(-#{mySessionManagedBean.navigationCounter});

此外,您需要初始化和递增此每次页面更改。

如果您使用jsf,它将像这样:

<h:commandButton ...>
    <f:setPropertyActionListener target="#{mySessionManagedBean.navigationCounter}" value="#{mySessionManagedBean.navigationCounter + 1}" />
</h:commandButton>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM