这是我的问题,我有一个不使用 runat="server" 的菜单项列表,所以我的默认页面有一个类似 localhost/Default.aspx 的 URL,如果我在 Visual Studio 中运行它,我的 javascript 会找到我的当前页面,这是“Default.aspx”并突出显示当前菜单项,此时一切正常。
现在,如果我使用 ftp 发布我的网站,当我第一次访问该网站时,该网站将具有 url localhost,最后没有 Default.aspx,现在我的 javascript 在我的页面中找不到“Default.aspx”并且将改为返回“”,因此我的菜单项未突出显示。如果我单击菜单中的主页,则 url 变为 localhost/Default.aspx,并且菜单将突出显示。
那么有没有办法改变我的javascript,所以当我第一次点击那个网站时,即使我的url最后不包含“Default.aspx”,它仍然会突出显示我的菜单?
这是我的 javascript"
$(function () {
var url = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
$('[href$="' + url + '"]').parent("li").addClass("current_page_item");
});
如您所见,如果我使用
<a runat="server" href="~/">Home</a>
对于我的主页,
lastIndexOf("/")
在我的 javascript 中将始终返回空白,因此没有突出显示,我知道问题出在哪里,但无法找到解决方法
谢谢
html:
1.主菜单
<div id="menu" class="container">
<ul>
<li class="current_page_item"><a runat="server" href="~/" accesskey="1" title="">Home</a></li>
<li><a href="Softcare/SoftcareHome.aspx" accesskey="2" title="">Softcare</a></li>
<li><a href="Softlearn/SoftlearnHome.aspx" accesskey="2" title="">Softlearn</a></li>
<li><a href="Software/SoftwareHome.aspx" accesskey="2" title="">Software</a></li>
</ul>
</div>
2.sidemenu
<div id="sidemenu">
<div class="section-title">
<asp:ContentPlaceHolder ID="submenutitle" runat="server">
</asp:ContentPlaceHolder>
</div>
<ul>
<li><a runat="server" href="~/" accesskey="1" title="">Home</a></li>
</ul>
</div>