IE总是在<a href="#"/>被单击

IE Always Reloads Entire Page when <a href="#" /> is Clicked

本文关键字:quot quot# gt 单击 lt IE href      更新时间:2023-09-26

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

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

不管怎样,页面都会完全重新加载。

然而,像这样的链接:

<a>Hello</a>

将正常工作,不会重新加载整个页面。

IE中是否有某种设置会导致此功能发生更改

信息:我已经将安全设置设置为低,并禁用了所有插件以及"启用第三方插件"选项。

任何建议都很有用,谢谢。

编辑:这是我正在测试的

<a href="#" id="btnAddStuff" runat="server" onclick="displayAddStuff();" style="cursor:pointer;">
                <asp:Literal ID="litAddStuff" runat="server" Text="Add Stuff"  /></a>

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

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

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

$("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();
      }
   }
}

请发布您的代码。

我想你指的是"跳跃"

哪个";href"我应该为JavaScript链接使用的值#"或";javascript:void(0)"?

什么';s添加';return false';点击事件监听器?

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

您在head中设置了base元素吗?这是一个标准的原因。

使用JavaScript可以帮助您克服这一点。大致如下:

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

应该处理好它。或者你也可以让它返回false。取决于你想做什么。