tab选项卡切换后 刷新后保持当前选项卡页面

我采用了bootstrap3.0的选项卡组件
参考链接:bootstrap选项卡文档
使用前先引入bootstrap,引入方法:bootstrap如何引入
记得bootstrap使用前引入jquery

  • 参考代码
<!--选项卡-->
<div>
    <ul class="nav nav-tabs" role="tablist">
        <li role="presentation" class="active"><a href="#sortType" aria-controls="home"
                role="tab" data-toggle="tab">Home</a></li>
        <li role="presentation"><a href="#sortTime" aria-controls="profile" role="tab"
                data-toggle="tab">Profile</a></li>

    </ul>
    <!-- Tab panes -->
    <div class="tab-content">
        <div role="tabpanel" class="tab-pane active" id="sortType">1...</div>
        <div role="tabpanel" class="tab-pane" id="sortTime">2...</div>

    </div>
</div>
<script>
        $(document).ready(function () {
            $('.nav-tabs a').click(function (e) {
                e.preventDefault()
                $(this).tab('show')
            })
            $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
                sessionStorage.selectTab = $(e.target).attr('href');
            });
            var selectedTab = sessionStorage.selectTab;
            if (selectedTab) {
                $('.nav-tabs a[href="' + selectedTab + '"]').tab('show')
            }
        })
    </script>

试过session来存储,但是没有成功,就采用了sessionStorage来保留上一次的选项卡id。

在客户端存储数据

HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储
  1. sessionStorage 方法
    sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

  2. localStorage 方法
    localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

在实现tab选项卡切换并进行页面操作后,通常页面会进行刷新操作,这会导致页面跳转到默认的tab页,这通常不是用户所期望的。为了解决这个问题,可以采用以下几种方法: 1. URL哈希: 使用URL的哈希值来记住用户所在的tab页。当用户进行页面操作后刷新页面时,可以解析当前URL的哈希值来确定应该显示哪个tab页。例如,在tab切换时,可以在URL后面添加哈希值,比如`#tab3`,然后在页面加载完成后,根据哈希值来激活相应的tab页。 2. SessionStorage或LocalStorage: 使用Web存储(sessionStorage或localStorage)来保存当前激活的tab页信息。在用户切换tab时,将当前tab页的信息保存到sessionStorage或localStorage中。页面加载完成后,读取存储的数据来决定哪个tab页应该被激活。 3. 使用Ajax进行数据操作: 在进行数据删除或其他操作时,使用Ajax与服务器交互,不刷新整个页面。这样用户操作完成后,页面不会进行全刷新,而是可以保持当前tab页。然后通过JavaScript控制,刷新或激活对应的tab页。 以下是一个示例代码,展示了如何在JavaScript中使用sessionStorage来保存和恢复当前tab页的状态: ```javascript // 假设tab切换函数是这样的: function changeTab(tabNumber) { // 激活对应的tab页 // ... // 保存当前tab页到sessionStorage sessionStorage.setItem('activeTab', tabNumber); } // 页面加载完毕后激活之前保存的tab页 document var activeTab = sessionStorage.getItem('activeTab'); if (activeTab) { changeTab(activeTab); } else { // 如果没有保存的tab页,则默认激活第一个tab页 changeTab(1); } }); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值