搜尋

首頁  >  問答  >  主體

javascript - js怎麼實作瀏覽器回到上一層,我們就能回到最後離開時候的狀態!

想實現頁面回到上一層,就能返回最後離開時候得到狀態,包括樣式一系列的,頁面上沒有返回上一層的btn,感覺很難實現!網上都說用hash,cookie,storage我感覺都不靠譜,根本沒辦法取得頁面是跳轉過來的還是返回回來的,求大神指導!

阿神阿神2856 天前570

全部回覆(5)我來回復

  • 大家讲道理

    大家讲道理2017-05-16 13:10:10

    window.history.go(-1);

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:10:10

    簡單,離開的時候,你的url上帶個參數:encode_url後的上一個頁面的地址!

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:10:10

    是的,目前沒辦法判斷頁面是怎麼進入的,有可能是回退,有可能是前進。

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-16 13:10:10

    http://www.zhangxinxu.com/wor...

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:10:10

    現在我有2頁:頁A和頁面B

    頁B

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    
    <body>
      <button type="" onclick='back()'>返回A页</button>
      <script>
      function back() {
        window.history.go(-1);
      }
      sessionStorage.setItem('info', 'true'); //值必须为字符串
      </script>
    </body>
    
    </html>

    頁A

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    
    <body>
      <a href="B.html">跳转到B页面</a>
      <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
      <script>
      var flag = sessionStorage.getItem('info'); // IE不支持本地文件
      if (flag === 'true') {
        $('<span class="back-succeed">返回成功</span>').appendTo('body'); //如果是从其他页面返回本页,添加提示
        console.log('页面是从B页返回的');
        sessionStorage.removeItem('info');
      } else {
        console.log('页面是新进入的');
      }
      </script>
    </body>
    
    </html>

    流程:

    1、從頁面A進入頁面B
    2、頁面​​B我們設定了一個info==='true'的sessionStorage
    3、頁面B透過按鈕呼叫函數back()執行window.history.go(-1)回傳了頁面A
    4、回到頁面A後我們取得info並賦值給flag,判斷flag==='true'就表示是從頁面B返回的,並清除info的值,如果在頁面A刷新,那麼info已經被清除了,會輸出:頁面是新進入的。
    5、如果一開始就直接打開頁面A,此時沒進入頁面B,info也是不存在的,會輸出:頁面是新進入的

    複製A和B頁面的內容可自行測試- -

    回覆
    0
  • 取消回覆