Javascript IE总是在<;a href="#&引用/&燃气轮机;点击

Javascript IE总是在<;a href="#&引用/&燃气轮机;点击,javascript,asp.net,internet-explorer,Javascript,Asp.net,Internet Explorer,我在使用Internet Explorer时遇到了一个奇怪的错误(目前版本为8,但在版本7中也有相同的问题)。单击链接时,例如: <a href="#">Hello</a> 无论发生什么情况,页面都会完全重新加载 然而,像这样的链接: <a>Hello</a> 编辑#2:我已经用多个版本的IE测试过了。通过干净的安装,它可以正常工作。但是,在具有不同设置的随机用户机器上进行测试会导致该问题 编辑#3:感谢您对如何改进此代码的回复。虽然

我在使用Internet Explorer时遇到了一个奇怪的错误(目前版本为8,但在版本7中也有相同的问题)。单击链接时,例如:

<a href="#">Hello</a> 

无论发生什么情况,页面都会完全重新加载

然而,像这样的链接:

<a>Hello</a>

编辑#2:我已经用多个版本的IE测试过了。通过干净的安装,它可以正常工作。但是,在具有不同设置的随机用户机器上进行测试会导致该问题


编辑#3:感谢您对如何改进此代码的回复。虽然我很理解这一点,但我的问题是,是否有人知道Internet Explorer中是否有可配置的设置会导致浏览器以不同的方式运行上述代码?

您是否在
头部设置了
base
元素?这是一个标准的原因

使用JavaScript可以帮助您克服这些困难。大致如下:

<a href="javascript:;" onclick="document.location.hash='#' />Hello</a>

你应该照顾好它。或者你也可以让它返回false。取决于您希望执行的操作。

请发布您的代码

我想你指的是“跳跃”


我认为这些线程会更有用。标记为删除???

如果您了解一些javasript和/或jQuery,您可以这样做:

$("a[rel='prevDefault']").on('click', function(event){
    if($(this).attr("href").indexOf("#") > -1){
        event.preventDefault();
    }
});
或:

var anchorary=document.getElementsByTagName(“a”),I;
对于(I=0;I-1){
event.preventDefault();
}
}
}

否根本没有设置基本元素。发布代码有助于您获得更好的答案。根据您所说的,我只能从导致您所描述的行为的最常见问题中进行猜测。我已经测试了我的代码,并使其在多个浏览器中工作。此错误仅在一个特定用户的计算机上发生。我应该在最初的问题中公布这一点。这就是为什么我认为它与IE设置有关。你介意编辑你的帖子,使链接显示为代码块吗?我不能为你做,因为编辑太小,无法处理。4个空格缩进创建代码块。如果我的解释不清楚,您可以查看问题编辑器上的“帮助”面板。谢谢,这将增加您获得所需答案的机会。虽然我始终无法找到导致此人IE出现这些问题的原因,但我可以使用此处提供的一些类似代码删除所有href=“#”属性,以便对它们起作用。我仍然很好奇为什么一个IE安装会做到这一点,而没有其他人会做到。但无论哪种方式,这个解决方案似乎都能奏效,干杯。@user1048281这来自不同的操作系统、不同的内核和不同的更新版本,即使是在同一个操作系统上,根据您所面临的挑战,其表现也会大不相同。IE喜欢更多地为用户和程序员着想,并且有一些你必须为之写验收的回扣。
$("a[rel='prevDefault']").on('click', function(event){
    if($(this).attr("href").indexOf("#") > -1){
        event.preventDefault();
    }
});
var anchorArray = document.getElementsByTagName("a"), I;
for(I=0;I<anchorArray.length;I++){
   anchorArray[I].click =  function(event){
      if(anchorArray[I].href.indexOf("#") > -1){
          event.preventDefault();
      }
   }
}