在JavaScript中拦截命名锚点

4
假设有人在浏览器地址栏中输入http://example.com/somepage#someanchor。如何截取这个对锚点的调用,正常显示页面(不滚动到锚点),并且在JavaScript中代替执行一些操作,例如警报“someanchor”。需要使用JavaScript完成此操作,没有服务器端重定向(例如到somepage?anchor=someanchor)。 有什么想法吗?这个可行吗?很容易拦截我控制的锚点的点击,但这里情况有所不同。
3个回答

4
拦截它很容易(从您的onload处理程序中调用此函数):
function getHash() {
  var hash = window.location.hash;
  return hash.substring(1); // remove #
}

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

1
为了完整性,请执行window.scrollTo(0,0); - Jan

2
您可以使用以下方法来完成此操作:
$(window).on('hashchange', function() {
  //prevent default, then your code
});

如此SO答案所述:


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接