【发布时间】:2013-09-05 02:13:49
【问题描述】:
我的一个案例无法正常工作。它们都可以工作,除了一个,它实际上在 URL 中有查询,但它们总是相同的。查询 URL 如下所示:http://mywebsite.com/search/?q=label:Web-Design|label:Graphic-Design|label:Identity-Design|label:Brand-Design
它不起作用,我想知道 windows.location 是否支持 URL 中的查询。在我看来这无关紧要,但无论哪种方式我都无法正常工作。
我 100% 肯定这是正确的路径名,因为我复制并粘贴了它,只是为了像其他域一样删除域。
这是我正在使用的:
<script type='text/javascript'>
$(document).ready(function(){
switch (window.location.pathname) {
default:
$('.nav-blog').addClass('current');
break;
case '/p/about.html':
$('.nav-about').addClass('current');
break;
case '/':
$('.nav-home').addClass('current');
break;
case '/search/blog':
$('.nav-blog').addClass('current');
break;
case '/p/forums.html':
$('.nav-forums').addClass('current');
break;
case '/search/?q=label:Web-Design|label:Graphic-Design|label:Identity-Design|label:Brand-Design':
$('.nav-design').addClass('current');
break;
case '/p/photography.html':
$('.nav-photography').addClass('current');
break;
case '/p/hosting.html':
$('.nav-hosting').addClass('current');
break;
}
});
</script>
【问题讨论】:
-
使用调试器单步调试您的代码。如果您检查
window.location.pathname的值,应该很明显。 -
我不知道这是否有帮助,但我总是将我的默认设置作为选择列表中的最后一个选项,看看它是否解决了你的问题......我不认为它会试一试看看。
-
windows.location.pathname 不包含查询字符串
-
window.location.path + window.location.search但正如我在回答中所说,如果由于某种原因它们末尾有查询字符串,其他情况将失败。此外,您的开关目前是区分大小写的,您可能需要将搜索大小写从开关中分离出来,并首先检查路径是否与/search/匹配,如果它确实检查查询字符串(如果没有进入开关)。 -
Chrome 的开发工具远不止一个控制台。有一个内置的调试器。developers.google.com/chrome-developer-tools/docs/…
标签: javascript