我有一个单独工作的标签系统。问题是,如果有人单击指向具有类似选项卡系统的另一个页面的链接,即使使用不同的类,过去的哈希也会被存储。
所以,假设他们在第 1 页,打开的标签结束了 url,如:/dept/waste-recycling-programs?whatToRecycle#whatToRecycle
然后,转到第 2 页,它有一个完全不同的 url,/dept/facilities/?goals2013#whatToRecycle
所以有人点击了“2013年目标”,这导致了一个不同的网址并像它应该的那样添加了“?goals2013”,但随后它附加了“#whatToRecycle”。这是在上一页中使用选项卡系统单击的最后一个选项卡。
如果我能弄清楚如何在页面加载时调用一些函数来清除所有内容?然后,它应该工作,我在想。
问题是左侧导航栏具有指向特定选项卡的所有链接,因此某人不必来到第 1 页或第 2 页,然后单击说第三个选项卡。他们单击任一页面上的第三个选项卡,点击该页面,该选项卡已打开。
链接列表的 HTML:
<ul class="enviroNav">
<li class="bottomBorder"><a href="?">WHAT WE DO</a></li>
<li class="liWithSubs"><a href="/departments/site-facilities/environment">ENVIRONMENT</a></li>
<li><a href="/departments/site-facilities/iso-14001?iso14001">ISO 14001</a></li>
<li class="doubleIndentLi"><a href="/departments/site-facilities/iso-14001?environmentalPolicy">-Environmental Policy</a></li>
<li class="doubleIndentLi"><a href="/departments/site-facilities/iso-14001?impactAreas">-Impact Areas</a></li>
<li class="doubleIndentLi"><a href="/departments/site-facilities/iso-14001?goals2013">-2013 Goals</a></li>
<li><a href="/departments/site-facilities/environment/waste-recycling-programs?whatToRecycle">Recycling/Waste</a></li>
<li class="doubleIndentLi"><a href="/departments/site-facilities/environment/waste-recycling-programs?whatToRecycle">-What To Recycle</a></li>
<li class="doubleIndentLi"><a href="/departments/site-facilities/environment/waste-recycling-programs?whereToRecycle">-Where to Recycle</a></li>
<li class="doubleIndentLi"><a href="/departments/site-facilities/environment/waste-recycling-programs?quickTips">-Quick Tips</a></li>
<li class="doubleIndentLi"><a href="/departments/site-facilities/environment/waste-recycling-programs?seeResults">-See Results</a></li>
<li class="bottomBorder"><a href="#">Energy</a></li>
<li class="liWithSubs"><a href="#">COMMUNITY</a></li>
<li><a href="#">-Upcoming Events</a></li>
<li class="bottomBorder"><a href="?">-Past Activities</a></li>
<li class="liWithSubs"><a href="?">HOW WE'RE DOING</a></li>
<li><a href="#">-See the Results</a></li>
<li class="bottomBorder"><a href="#">-Success Stories</a></li>
<!-- <li class="bottomBorder"><a href="#">WHY WE CARE</a></li>
<li class="bottomBorder"><a href="#">EMPLOYEE WELLNESS</a></li>-->
<li class="bottomBorder"><a href="/departments/site-facilities/ehs-training">ENVIRONMENTAL HEALTH & SAFETY(EHS) PROGRAM</a></li>
<li><a href="?">COMMUNITY LINKS</a></li>
</ul>
此例程有效:
function setupSubNav(){
pathName = window.location.href;
$('.hiddenSection').css('display','none');
pathArray = pathName.split('#');
param = pathArray[pathArray.length-1];
if(pathArray.length>1){
showWasteSection(param,$('.' + param + 'Trigger'));
}
else
{
if ($('body.fervens-a .pageTabsWaste li')) {
var sectionNameWaste = $($('body.fervens-a .pageTabsWaste li')[0]).attr('class').split('Trigger')[0];
showWasteSection(sectionNameWaste, $($('body.fervens-a .pageTabsWaste li')[0]));
}
}
$('body.fervens-a .pageTabsWaste li').click(function(){
if (!($(this).hasClass('current'))) {
var sectionNameWaste = $(this).attr('class').split('Trigger')[0];
showWasteSection(sectionNameWaste, $(this));
}
});
}
function showWasteSection(sectionNameWaste,$navObj) {
if (sectionNameWaste != 'whatToRecycle' && sectionNameWaste != 'whereToRecycle' && sectionNameWaste != 'quickTips' && sectionNameWaste != 'seeResults') {
sectionNameWaste = 'whatToRecycle';
$navObj = $($('body.fervens-a .pageTabsWaste li')[0]);
}
$('body.fervens-a .pageTabsWaste li').removeClass('current');
$navObj.addClass('current');
$('.hiddenSection').css('display','none');
$('#' + sectionNameWaste + 'Content').css('display','block');
window.location.hash = sectionNameWaste;
}
尽管我前段时间把它放在一起,但当时我并没有在超过一个页面上使用它,所以现在我试图强制清除 URL。这是在 Drupal 6 站点内,它在 Intranet 内部,所以我必须支持 IE7+。不能乱用 HTML5 存储等。
有没有办法在点击导航列表中的任何链接时擦除 url?如果以某种方式出现,我不关心性能问题或迭代。