[英]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.