我有一个带有~6个按钮的菜单,每个按钮都指向同一页面。 在该页面中,有一个下拉菜单。 6个按钮的用途是,当单击其中一个按钮时,页面将被重定向,然后下拉菜单将打开到正确的选项卡。
但是,重定向页面时会杀死所有脚本,所以我不能这样做:
<body>
<a id="buttonID" onclick="GoToPage('buttonID')">All</a>
</body>
<script>
function GoToPage(buttonID){
redirect to page.html;
open menu to tab related to buttonID
}
</script>
相反,我可能需要创建一个在页面加载时执行的函数,然后尝试查找它从哪个按钮到达,并根据该菜单打开菜单到正确的配置。
我应该使用类似的东西:
window.onload = ....
我怎样才能将哪个按钮重定向到此页面?
答案 0 :(得分:0)
打开下拉菜单应该是目标页面的责任,而不是源页面。由于服务器不关心下拉菜单状态,请在fragment identifier中发送该信息:
<a id="buttonID" href="page.html#all">All</a>
在接收端,您可以使用
检索标识符document.addEventListener('DOMContentLoaded', (event) => {
let target = window.location.hash; // target = "#all"
// modify your menu as appropriate
});
load
事件在页面完全加载之前不会触发:图像,样式表,所有内容。修改下拉菜单并不需要其中任何一项,因此请改用DOMContentLoaded
事件。它在加载和解析HTML页面并准备好进行DOM操作时触发。