有这样一个html:检测锚是导致积极window.location的
<a class="someclass" href="some/url/absolute/or/relative">Blah</a>
...这样的JavaScript的一起:
$("a.someclass").onclick(function() {
var link = $(this).attr("href");
if (link == window.location) // <<<<<<<<<<<<
doSomethingSpecial();
else
doOtherThing();
return false;
});
这段代码显然是行不通的。
如何可靠地检测到某个锚点正在导致当前的浏览器位置?
这里有一些注意事项:
- 锚的
href
可能是绝对或相对的。 - 应该忽略URL的片段。
@David:你确定'$('a')。attr('href')'总是返回相对路径吗?这将是非常好的,因为我可以比较'location.pathname'。但是,片段呢?... – 2010-02-09 10:56:25
@Anton:看我的编辑。 – David 2010-02-09 12:22:24
一些较旧的浏览器不在anchor.pathname中包含最初的'/',但它们在window.location.pathname上执行。如果你关心较旧的浏览器,那么在进行比较之前你需要检查它。 – Nicholas 2013-12-14 04:30:16