好吧,根据您的总体目标,有几种方法可以实现。
首先 - 您可以使用 cookie 来保存页面之间的状态。这很容易实现,不需要任何服务器端代码。
其次 - 您甚至可以使用数据库,但这有点过头了,除非您已经在使用数据库。
第三 - 使用 Javascript 根据当前页面位置确定菜单的位置。这是我的建议 - 它非常快速/简单/轻量级。从理论上讲,如果用户导航到一个页面,那么他们就会通过菜单到达那里,并且每次都会在菜单中的确切位置。
这是一个使用直接 Javascript 的快速示例。此代码是动态生成的基本菜单,它根据当前 URL 设置活动菜单项的类。您可以使用嵌套菜单轻松完成类似的操作。看看,如果您有任何问题,请告诉我:
(function () {
var html = "<div class=\"menu\">" +
"<div id=\"Page1MenuItem\"><a href=\"page1.html\">Page1</a></div>" +
"<div id=\"Page2MenuItem\"><a href=\"page2.html\">Page2</a></div>" +
"<div id=\"Page3MenuItem\"><a href=\"page3.html\">Page3</a></div>" +
"<div id=\"Page4MenuItem\"><a href=\"page4.html\">Page4</a></div>" +
"<div id=\"Page5MenuItem\"><a href=\"page5.html\">Page5</a></div>" +
"</div>";
document.getElementById("MenuContainer").innerHTML = html;
var currentUrl = window.location.pathname.toLowerCase();
switch (currentUrl) {
case "/page1.html":
document.getElementById("Page1MenuItem").setAttribute("class", "current");
break;
case "/page2.html":
document.getElementById("Page2MenuItem").setAttribute("class", "current");
break;
case "/page3.html":
document.getElementById("Page3MenuItem").setAttribute("class", "current");
break;
case "/page4.html":
document.getElementById("Page4MenuItem").setAttribute("class", "current");
break;
case "/page5.html":
document.getElementById("Page5MenuItem").setAttribute("class", "current");
break;
}
})();