Моя проблема заключается в следующем: у меня есть три навигационных вкладки:
<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, который передает некоторые данные сообщений из меню 1 в меню 2 и из меню 2 в меню 3 по URL-адресу.
Моя проблема в том, что когда я позвонил http://example.com/page.php#menu2 < / a> это не сработало. С помощью кода JavaScript, который я нашел в Интернете, URL-адрес показывает # menu2 при нажатии на эту вкладку.
Моя цель - вызвать из файла php, который вызывается после формы menu1 на windows.location на новую вкладку. На самом деле я начал так: window.location = "/ html / pages / page.php # menu2? Variable1 = 'blabla';
Но windows.location открывает только page.php, а не конкретную вкладку.
Я обнаружил, что когда я меняю URL, нажимаю ввод, ничего не меняется. Но когда я меняю URL-адрес, нажимаю клавишу ВВОД И перезагружаю страницу, все работает. Итак, могу ли я, вероятно, использовать location.reload (); где достичь моей цели?
Я не понимаю, почему бутстрап не работает ... или есть какое-то простое решение, которого я не знаю?
1 ответ
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 = 'blabla' # menu2
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.