5

引导程序 2.3.2

我在我的项目中使用Bootstrap 中的选项卡来显示内容。在一个页面上,有多个具有不同内容的选项卡,这些选项卡中的链接可将用户带到网站上的其他页面。

不幸的是,默认情况下,标签不支持后退按钮导航,因此如果用户访问另一个页面并点击浏览器的后退按钮,该标签将恢复为第一个打开的标签,而不是他们上次查看时处于活动状态的标签页。

下面来自François Zaninotto的 Javascript解决了 Chrome、Firefox 和 Safari 中的这个问题。François 还说它适用于 IE8+ - 但在我的测试中,我无法让它在 IE8、IE9 或 IE10 上运行。有谁知道如何让它在 IE8+ 中工作?可能吗?

$(document).ready(function() {
  // add a hash to the URL when the user clicks on a tab
  $('a[data-toggle="tab"]').on('click', function(e) {
    history.pushState(null, null, $(this).attr('href'));
  });
  // navigate to a tab when the history changes
  window.addEventListener("popstate", function(e) {
    var activeTab = $('[href=' + location.hash + ']');
    if (activeTab.length) {
      activeTab.tab('show');
    } else {
      $('.nav-pills a:first').tab('show');
    }
  });
});

`

    <ul id="myTab" class="nav nav-pills">
              <li class="active"><a href="#tab1" data-toggle="tab">Tab1</a></li>
              <li><a href="#tab2" data-toggle="tab">Tab2</a></li>
        <li><a href="#tab3" data-toggle="tab">Tab3</a></li>

            </ul>

<div id="myTabContent" class="tab-content">
              <div class="tab-pane active" id="tab1">
                  <h2>Tab 1</h2>
                <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
              </div>
              <div class="tab-pane" id="tab2">
                  <h2>Tab 2</h2>
                <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
              </div>
              <div class="tab-pane" id="tab3">
                    <h2>Tab 3</h2>
                <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
              </div>
            </div>
4

2 回答 2

1

我的实现可能不是解决您的问题的最有效方法,因此请等待其他答案。

跨页面保留javascript变量?

使用 JavaScript 会话存储选项卡的唯一编号,就像您当前用于 ID 一样。

tabHistory = "tab" + currentTab;

返回上一页时,只需将用户链接到 tabHistory。

我对这种技术没有太多经验,只使用过一次,但是它应该快速简单地实现,也非常有效。

从我收集到的信息来看,如果新窗口/标签打开,它将不起作用,但后退按钮也不会,所以它是无关紧要的。

于 2013-08-02T11:20:32.667 回答
1

我尝试了很多次让我的代码在上面工作,但我不得不放弃,而是实现了以下有效的 javascript: https ://gist.github.com/josheinstein/5586469

于 2013-08-20T21:36:30.340 回答