2014-06-18 125 views
1

目前我遇到過歷史問題。背部 ()。jquery mobile history.back()僅適用於第一次

我有2頁,它是pageA.html,pageB.html。

我用下面的代碼進入下一個頁面,並返回到上一個頁面

// go to next page 
function changePage(url) { 
    $.mobile.pageContainer.pagecontainer("change", url, { 
    allowSamePageTransition: true, 
    transition: 'none', 
    showLoadMsg: false, 
    reloadPage: false, 
    changeHash: true 
    }) 
} 

//back to previous page 
function backToPreviousPage(){ 
    alert("back"); 
    history.back(); 
} 

的代碼工作得很好,第一次,如下

第一次流:pageA的> pageB(點擊後退按鈕一次)> pageA

所以我已經成功地回到pageA了。問題出現了。

二時間:pageA的>頁面B(第一次單擊後退按鈕沒有反應,然後點擊第二次)> pageA的

當涉及到第三次,我需要在後退按鈕點擊3次,然後方能使history.back()工作,我可以得到警報消息,因此調用backToPrevious函數。

所以這個問題是象下面這樣:

  • 第一導航:pageA的>頁面B> pageA的(1次點擊)
  • 第二導航:pageA的>頁面B> pageA的(2次點擊)
  • 第三naviagate: pageA的>頁面B> pageA的(3次點擊)

等....

II可以不只是硬編碼導航回pageA在backToPrevious函數中,因爲我不僅可以從pageA導航到pageB,還可以從其他頁面導航pageB。

到目前爲止,我已經嘗試過這種

history.back(-1); 

<a data-rel="back" href="javascript:history.back(1)" data-theme="a">Back</a> 

但仍無法修復該問題。

欣賞是否有人能告訴我我做錯了什麼。 謝謝。

回答

0

只需使用此代碼即可。

function changePage() { 
    $.mobile.changePage("pageA.html"); 
    return false; 
    } 

    function backToPreviousPage(){ 
    navigator.app.backHistory(); 

    } 
+0

對不起,這是我的錯,沒有給我的問題的全部細節。 pageB實際上是一個多訪問頁面,意味着我可以從pageA導航pageB,也可以從pageZ導航pageB。你有什麼想法嗎? –

+0

我更改了代碼。試試這個。 –

相關問題