如何阻止浏览器窗口跳过#ID哈希链接 - 需要最简单的JavaScript

时间:2010-09-29 12:26:50

标签: javascript hash window

有一个严格来说没有javascript的客户,但在这种特殊情况下,我认为我无法避免它。

我有一个“下一个/上一个”特色区域情况正在使用CSS(溢出:隐藏和位置:绝对) - 其中点击下一个或上一个(a href =“#section ...”)然后带来相关的div ID进入视图 - 但是,浏览器跳转到屏幕顶部非常烦人。

什么是阻止这种跳跃发生的最简单方法(使用javascript) - 但仍可用于关闭javascript的用户?

2 个答案:

答案 0 :(得分:4)

你只能通过以下方法解决这个问题:a)使用JS或b)摆脱那些锚链接。

如果您选择了a:

var links = document.getElementsByTagName('a');
var link;
for(var i = 0, j = links.length; i < j; i++) {
    link = links[i];
    if(link.href.substring(0, 1) == '#') {
       link.onclick = function(e) {
          var ev = e || event;
          ev.preventDefault();
       };
    }
}

答案 1 :(得分:1)

只需将'#'链接替换为'javascript:void(0)',您的页面就不会滚动

HTML

<a href="javascript:void(0);" title=" ">Link</a> // if you want no link, just like '#' link.
<a href="javascript:page(0);" title=" ">Link</a> // for link that you don't want to show.

<强> JS

function page()
{ window.location.assign("home.html"); }