2

我希望我的单页水平网站的访问者被重定向到被认为是“主页”的部分(它位于正文的中心)。现在,当他们访问主 URL 时,他们只会看到水平网站的最左侧部分。

问题是,我希望能够通过锚链接共享网站的其他部分,而不会将我的访问者重定向到 #Home 锚。

所以我基本上想要的是:

  • 如果访问的 URL 包含 #,则不执行任何操作(因为所有锚链接都包含 #)
  • 如果访问的 URL 不包含 #,则重定向到 #Home 锚点。(如果它不包含 #,我认为 url 无效,或者他们只是访问主页而 URL 中没有锚点。

现在,我有这个 JS 代码:

if (window.location.href.indexOf('#') > -1){
    // do nothing   
}
else {
    top.location.href = "http://www.url.com/#Home";
}

这段代码有什么问题,我应该如何以正确的方式做到这一点?

4

2 回答 2

1

我猜您的网页中某处有一个锚点,称为 home。您可以尝试模拟单击它。像:

$('[href="#Home"]').click();
location.href = location.href+ '#Home';
于 2012-11-28T15:19:58.673 回答
1

这将起作用:

if(!!~window.location.href.indexOf('#')){
    //do nothing   
}else{
    top.location.href = "http://www.url.com/#Home";
}

!!~部分会将结果indexOf转换为适当的布尔值。(!!将 true 或 false 值转换为trueand false,如果字符串包含 needle ( ),波浪号 ( ~) 将 的输出转换ìndexOf为 true 值"#")

这确实会在 Google Chrome 中的指定网址为我重新加载页面。

于 2012-11-28T15:20:32.493 回答