拦截在javascript中命名为锚

时间:2011-05-04 00:45:54

标签: javascript anchor

想象一下,有人在浏览器地址栏中输入http://example.com/somepage#someanchor。 我怎么能拦截这个对锚点的调用,正常显示页面(不要滚动到锚点)并在javascript中做一些事情,比如警告'someanchor'。所有的js,没有服务器端重定向(像某个页面?锚= someanchor)。

有什么想法吗?这有可能吗?我可以很容易地拦截对锚点的点击,但这不是这种情况。

3 个答案:

答案 0 :(得分:4)

拦截它很容易(从你的onload处理程序调用):

function getHash() {
  var hash = window.location.hash;
  return hash.substring(1); // remove #
}

为防止窗口向下滚动到所述锚点,您可能需要向上滚动onload事件。

答案 1 :(得分:2)

您可以使用以下方式执行此操作:

$(window).on('hashchange', function() {
  //prevent default, then your code
});

如本SO answer

所述

答案 2 :(得分:0)

查看Ben Alman的hashchange插件http://benalman.com/projects/jquery-hashchange-plugin/,它解决了跨浏览器问题