使用 URL 哈希在特定选项卡上打开页面
P粉317679342
2023-09-04 14:33:50
<p>诚然,我对此有些失落,因为我对哈希很陌生,但我认为这可能是我问题的解决方案,所以我希望这里的人可能有更多的见解。我有一个包含多个“选项卡”的网页(在单击按钮之前隐藏信息的 div,在单击按钮之前隐藏所有其他信息的 div),我希望能够从不同的网页打开到特定选项卡.</p>
<p>这是以前网页的骨架。当您定期导航到该页面时,第一个 div 默认可见。</p>
<pre class="brush:php;toolbar:false;"><div id="first" class="commission">
content
</div>
<div id="second" class="commission" style="display:none;">
content
</div>
<div id="third" class="commission" style="display:none;">
content
</div></pre>
<p>在此网页上有一些按钮,您可以单击这些按钮在这些 div 之间切换。</p>
<pre class="brush:php;toolbar:false;"><button class="commissiontab" onclick="commissionType(event, 'first')">first</button>
<button class="commissiontab" onclick="commissionType(event, 'second')">Second</button>
<button class="commissiontab" onclick="commissionType(event, 'third')">Third</button></pre>
<p>在这些之间切换的 javascript 如下:</p>
<pre class="brush:php;toolbar:false;">function commissionType(evt, commissionName) {
var i, commissiontab;
var x = document.getElementsByClassName("commission");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
commissiontab = document.getElementsByClassName("commissiontab");
for (i = 0; i < x.length; i++) {
commissiontab[i].className = commissiontab[i].className.replace(" selected", "");
}
window.scrollTo({ top: 0, behavior: 'smooth' });
evt.currentTarget.className += " selected";
document.getElementById(commissionName).style.display = "grid";
}</pre>
<p>不知何故,我希望将这些按钮放在不同的页面(“index.html”)上,但是当您单击“第三”时,您将进入新页面(“commissiontypes.html”)选择“第三”而不是默认的“第一”。</p>
<p>如果除了使用哈希之外还有其他解决方案,我很想听听,感谢您仔细查看。</p>
您最初可以使用
'commission'
类隐藏所有元素,然后在页面加载时根据location.hash
仅显示其中一个元素。这样,commissiontypes.html(和commissiontypes.html#first)将显示第一个div,commissiontypes.html#second将显示第二个div等(或者,您也可以考虑使用查询参数来指示该部分。)