想象一下,有人在浏览器地址栏中输入http://example.com/somepage#someanchor。 我怎么能拦截这个对锚点的调用,正常显示页面(不要滚动到锚点)并在javascript中做一些事情,比如警告'someanchor'。所有的js,没有服务器端重定向(像某个页面?锚= someanchor)。
有什么想法吗?这有可能吗?我可以很容易地拦截对锚点的点击,但这不是这种情况。
答案 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
});
所述
答案 2 :(得分:0)
查看Ben Alman的hashchange插件http://benalman.com/projects/jquery-hashchange-plugin/,它解决了跨浏览器问题