Javascript 防止浏览器跳转到定位

Javascript 防止浏览器跳转到定位,javascript,mootools,anchor,Javascript,Mootools,Anchor,如何防止浏览器跳转到锚定链接 我知道我可以在onclick事件上使用用户“returnfalse”,或者如果有人在使用mootools,我可以这样做 $('button').addEvent('click', function(e) { e.stop() //do blabla }); 这将阻止浏览器跳转到锚点,但我希望将锚点保留在url中,以便共享链接。我用锚来显示动态信息 有什么想法吗?只要立即滚动回页面顶部即可 self.scrollTo(0, 0) 我有一个插件可以做到这一点,它发

如何防止浏览器跳转到锚定链接

我知道我可以在onclick事件上使用用户“returnfalse”,或者如果有人在使用mootools,我可以这样做

$('button').addEvent('click', function(e) {
e.stop()
//do blabla 
});
这将阻止浏览器跳转到锚点,但我希望将锚点保留在url中,以便共享链接。我用锚来显示动态信息


有什么想法吗?

只要立即滚动回页面顶部即可

self.scrollTo(0, 0)

我有一个插件可以做到这一点,它发生得太快了,我只是觉得锚坏了。我想没有人会注意到。

我还没有机会测试这个跨浏览器,所以它在IE中可能会失败得很惨,但下面是我如何用哈希链接更新URL,同时处理不同方式单击它们时发生的实际操作(使用):


或者更无缝的方法是在单击处理程序中获取窗口的当前滚动条位置,并滚动回该位置,而不是顶部。如果将scrollTo()调用放在setTimeout中,则应该可以这样做。我通常的处理方法是在URL哈希之后使用与页面上的任何名称或id属性都不匹配的值。例如,“myValue=foo”而不是“foo”。如果散列值与页面上的某个元素匹配,我通常希望窗口滚动到该点。我正在设置像#这样的散列!然后我就删除了!当我想用这个散列来做页面上的事情时。
var setHash = function(hash) {
    // Make sure that the hash is the first character, and extract from (presumably) full URL if not
    if (hash.indexOf('#') > 0) {
        hash = hash.substr(hash.lastIndexOf('#'));
    } else if (hash.substr(0, 1) !== '#') {
        hash = '#' + hash;
    }
    // Add our hash element to the history/URL
    if (window.history.pushState) {
        window.history.pushState(null, null, hash);
    } else {
        window.location = hash;
    }
};

$('button').addEvent('click', function(e) {
    e.stop()
    setHash(this.get('href'));
    //do blabla 
});