IE中的javascript void(0)问题

时间:2009-05-08 04:45:05

标签: javascript internet-explorer

HI,

我正在使用asp.net开发一个网页。

我在网页中使用了一些链接。为此,我使用了这样的代码。

<a href="javascript:void(0);" onclick="javascript:ChangeLoc('TEST','');">Test</a>

并且在ChangeLoc()方法中我写了__doPostBack事件。

这在我的机器上安装的IE7中工作正常。但是在另一台机器的IE6中,它不会调用__doPostBack事件。

修改

当我在href中更改void(0)时,它可以正常工作。

我想知道它是IE的错误还是JavaScript问题。

function ChangeLoc( param, arg )
{
     __doPostBack ( param, arg )
}

4 个答案:

答案 0 :(得分:12)

单击元素时,

href和onclick都会被触发,你用void()覆盖了onclick事件

更改为

<a href="#" onclick="ChangeLoc();return false">test</a>

或使用jQuery。

$(function(){
  $("#linkId").click(function(event){
      ChangeLoc();
      event.preventDefault();
  });
}); 

答案 1 :(得分:3)

你收到错误吗?如果是这样,你在IE6中会得到什么错误?你可以发布ChangeLoc()的代码吗?另外,尝试将标记更改为以下内容,看看是否得到相同的结果:

<a href="#" onclick="ChangeLoc(); return false;">Test</a>

修改:从onclick中删除了“javascript:”

答案 2 :(得分:1)

您还可以使用不显眼的JavaScript语法:

<a href="index.html" id="chngLink">test</a>

<script type="text/javascript">
document.getElementById("chngLink").onclick = function(e) {
    if (e && e.preventDefault) {
        e.preventDefault();
    }
    ChangeLoc('TEST','');
    return false;
};
</script>

答案 3 :(得分:-1)

使用<a> - 元素进行javascript函数调用并不好。 使用样式<span onclick="my_function()" class="looks_like_hyperlink">...</span>