繁体   English   中英

在 javascript 中拦截命名锚点

[英]Intercept named anchor in javascript

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

有任何想法吗? 这可能吗? 拦截对锚点的点击很容易,我控制,但这里不是这种情况。

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

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

为了防止 window 向下滚动到所述锚点,您可能必须在onload事件上向上滚动。

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

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

如this SO answer中所述

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM