簡體   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