诚然,我对此有点不知所措,因为我是哈希的新手,但我认为这可能是我问题的解决方案,所以我希望这里的人可能会有更多的见解。我有一个网页与几个'标签'(div的信息隐藏,直到他们的按钮被点击,隐藏所有其他div的信息,直到他们的按钮被点击),我想能够打开到一个特定的标签从不同的网页。
这里是一个框架的前网页。默认情况下,当您定期导航到页面时,第一个div是可见的。
<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>
在这个网页上有一些按钮,你可以点击这些按钮在这些div之间切换。
<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>
在这些代码之间运行的javascript如下:
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";
}
不知何故,我希望这些按钮在不同的页面('index.html'),但当你点击'Third'例如,你被带到新页面('commissiontypes.html')与'Third'而不是默认的'First'选择。
如果有一个解决方案,而不是使用散列,我很乐意听到,谢谢你看这个。
2条答案
按热度按时间yc0p9oo01#
您可以先用
'commission'
类隐藏所有元素,然后在页面加载时基于location.hash
只显示其中一个元素。这样,commissiontypes.html
(和commissiontypes.html#first
)将显示第一个div,commissiontypes.html#second
将显示第二个div,依此类推。(或者,您也可以考虑使用查询参数来指示节。)
7d7tgy0s2#
我认为你试图实现的是在同一页上打开不同的部分。下面的示例演示如何将所有代码放在一个页面上并与之交互。您也可以使用URL打开任何部分。使用hidden属性的另一个好处是,在将显示设置更改为none之前,不必跟踪显示设置。
超文本标记语言
JS
URL示例