简体   繁体   English

无法使用本地存储在活动内部加载外部页面以在刷新时返回上次活动

[英]Unable to load external page inside active with local storage to return to last active on refresh

Post bounty update:发布赏金更新:

With Bootstrap-4 tab, I want to load external page inside active tab.使用 Bootstrap-4 选项卡,我想在活动选项卡中加载外部页面。 And, if page is refreshed it should return to last active tab.而且,如果页面被刷新,它应该返回到最后一个活动选项卡。

With Bootstrap navs , I was trying to load external page inside active div.使用 Bootstrap navs ,我试图在活动 div 中加载外部页面。 And, if page is refreshed it should return to the last active tab.而且,如果页面被刷新,它应该返回到最后一个活动选项卡。 So, I stored last active tab in localstorage and with that the active tab can be activated.因此,我将最后一个活动选项卡存储在localstorage中,并且可以激活活动选项卡。

In the mean time, if load a eternal page take a while so i added bootstrap spinner and here is the code,同时,如果加载一个永恒的页面需要一段时间,所以我添加了bootstrap spinner ,这是代码,

 $(document).ready(function() { $('a[data-toggle="tab"]').on('shown.bs.tab', function(e) { localStorage.setItem('activeTab', $(e.target).attr('href')); var $this = $(this), loadurl = $this.attr('href'), targ = $this.attr('data-target'); $.get(loadurl, function(data) { $(targ).html(data); }); $this.tab('show'); $("#tabsp").hide(); return false; }); var activeTab = localStorage.getItem('activeTab'); if (activeTab) { $('.nav-tabs a[href="' + activeTab + '"]').tab('show'); var $this = $(this), loadurl = $this.attr('href'), targ = $this.attr('data-target'); $.get(loadurl, function(data) { $(targ).html(data); }); $this.tab('show'); $("#tabsp").hide(); return false; } });
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.0/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.0/js/bootstrap.min.js"></script> <ul class="nav nav-tabs" id="myTab" role="tablist"> <li class="nav-item"> <a href="/dashboard/proinfo.php" data-target="#home" class="nav-link active" id="contacts_tab" data-toggle="tab"> Info </a> </li> <li class="nav-item"> <a href="/dashboard/ads.php" data-target="#ads" class="nav-link" id="ads-tab" data-toggle="tab"> Ads </a> </li> <li class="nav-item"> <a href="/dashboard/favor.php" data-target="#fav" class="nav-link" id="fav-tab" data-toggle="tab"> Favorites </a> </li> <li class="nav-item"> <a href="/dashboard/sold.php" data-target="#sol" class="nav-link" id="sol-tab" data-toggle="tab"> Sold </a> </li> </ul> <div class="tab-content profile-tab" id="myTabContent"> <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="contacts_tab"> </div> <div class="tab-pane fade" id="ads" role="tabpanel" aria-labelledby="ads-tab"> </div> <div class="tab-pane fade" id="fav" role="tabpanel" aria-labelledby="fav-tab"> </div> <div class="tab-pane fade" id="sol" role="tabpanel" aria-labelledby="sol-tab"> </div> <div class="text-center" id="tabsp"> <div class="spinner-border text-primary" role="status"> <span class="sr-only">Loading...</span> </div> </div> </div>

I was trying to add the following,我试图添加以下内容,

  • load eternal page inside div在 div 中加载永恒页面
  • return to last active on refresh with localstorage使用本地存储刷新时返回上次活动
  • and a bootstrap spinner while loading和加载时的引导微调器

While visiting index_file.php for the first time, I can view only the bootstrap spinner, which means IF there is no localstorage第一次访问index_file.php时,我只能查看 bootstrap spinner,这意味着如果没有localstorage

How do I solve this problem?我该如何解决这个问题?

This should solve your problems, but I can't fully test it.这应该可以解决您的问题,但我无法完全测试它。

 var defaultTab = 'contacts_tab'; $(document).ready(function() { $('a[data-toggle="tab"]').on('shown.bs.tab', function(e) { var tabEl = $(e.target); saveIntoLocalStorage(tabEl.attr('id')); loadPage(tabEl); }); var tabToActivate = loadFromLocalStorage(); loadPage(tabToActivate); }); function loadFromLocalStorage() { var activeTab = localStorage.getItem('activeTab'); if (activeTab) { return $("#" + activeTab); } else { saveIntoLocalStorage(defaultTab); return $("#" + defaultTab); } } function saveIntoLocalStorage(id) { localStorage.setItem('activeTab', id); } function loadPage(tabEl) { debugger; var $this = $(this), loadurl = tabEl.attr('href'), targ = tabEl.attr('data-target'); $.get(loadurl, function(data) { $(targ).html(data); }); $this.tab('show'); $("#tabsp").hide(); return false; }
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.0/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.0/js/bootstrap.min.js"></script> <ul class="nav nav-tabs" id="myTab" role="tablist"> <li class="nav-item"> <a href="/dashboard/proinfo.php" data-target="#home" class="nav-link active" id="contacts_tab" data-toggle="tab"> Info </a> </li> <li class="nav-item"> <a href="/dashboard/ads.php" data-target="#ads" class="nav-link" id="ads-tab" data-toggle="tab"> Ads </a> </li> <li class="nav-item"> <a href="/dashboard/favor.php" data-target="#fav" class="nav-link" id="fav-tab" data-toggle="tab"> Favorites </a> </li> <li class="nav-item"> <a href="/dashboard/sold.php" data-target="#sol" class="nav-link" id="sol-tab" data-toggle="tab"> Sold </a> </li> </ul> <div class="tab-content profile-tab" id="myTabContent"> <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="contacts_tab"> </div> <div class="tab-pane fade" id="ads" role="tabpanel" aria-labelledby="ads-tab"> </div> <div class="tab-pane fade" id="fav" role="tabpanel" aria-labelledby="fav-tab"> </div> <div class="tab-pane fade" id="sol" role="tabpanel" aria-labelledby="sol-tab"> </div> <div class="text-center" id="tabsp"> <div class="spinner-border text-primary" role="status"> <span class="sr-only">Loading...</span> </div> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM