通过url Bootstrap调用navtab


Call a navtab by url Bootstrap

我的问题如下:我有三个导航标签:

<ul class="nav nav-tabs">
  <li class="active"><a data-toggle="tab" href="#menu1">Personendaten</a></li>
  <li><a data-toggle="tab" href="#menu2">Studienübersicht</a></li>
  <li><a data-toggle="tab" href="#menu3">Dokumente</a></li>
</ul>
<div class="tab-content">
  <div id="menu1" class="tab-pane fade in active">
  <!-- some code here -->
  </div>
  <div id="menu2" class="tab-pane">
    <!-- some code here -->
  </div>
  <div id="menu2" class="tab-pane">
    <!-- some code here -->
  </div>
 </div>
/** A solution I found on the internet */
// Javascript to enable link to tab
    var url = document.location.toString();
    if (url.match('#')) {
        $('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
    } 
    // Change hash for page-reload
    $('.nav-tabs a').on('shown.bs.tab', function (e) {
        window.location.hash = e.target.hash;
    })

里面每个菜单是一个帖子,调用php文件传输一些帖子数据从菜单u1到菜单u2和从菜单2到菜单3,通过url。

我的问题是,是,当我调用http://example.com/page.php#menu2它不工作。通过我在互联网上找到的JavaScript代码,当单击此选项卡时,url显示#menu2。

我的目的是,从php文件中调用,这是在每个窗口的menu1形式之后调用的。新选项卡的位置。实际上,我是这样开始的:window.location="/html/pages/page.php#menu2?variable1='blabla';

但是窗户。Location只打开page.php,而不是特定的选项卡。

我发现,当我更改URL时,按enter键没有任何变化。但是当我更改URL时,按回车并重新加载页面,它就工作了。那么我是否可以使用location。reload();有什么地方能达到我的目标?

我不明白,为什么bootstrap不能让这个工作…还是有什么我不知道的简单解决办法?

if (url.match('#')) {
    $('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
} 

这段代码运行良好。使用url.split('#'),你用'#'分割你的url。所以如果你这样做:

window.location="/html/pages/page.php#menu2?variable1='blabla';

你将有:

$('.nav-tabs a[href="#menu2?variable1='blabla'"]').tab('show');

这可能是为什么它不工作,你应该改变你的url为:page.php?variable1 = '鼓励性' # menu2