IE <a href="#"> is Clicked</a>时始终重新载入整页

时间:2012-01-26 17:25:25

标签: javascript asp.net internet-explorer

我在使用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中是否存在可配置的设置,这些设置会导致浏览器以不同的方式运行上述代码?

3 个答案:

答案 0 :(得分:2)

请发布您的代码。

我认为你指的是“JUMP”

Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?

What's the effect of adding 'return false' to a click event listener?

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

答案 1 :(得分:2)

如果你知道一点javascript和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();
      }
   }
}

答案 2 :(得分:0)

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

使用JavaScript可以帮助您解决这个问题。有点像:

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

应该照顾它。或者你也可以让它返回假。取决于你想要做什么。