try<a href="javascript:void(reName(61))">afdsadsf</a>

解决方案 »

  1.   

    I guess it is bug in IE5
      

  2.   

    这个现象我以前就思考过,不过水平有限,只能试着解释到下面这个程度,希望能抛砖引玉。让高手来做深一步解释。表达一:<a href=# onclick="window.location='xx.htm'">afdsadsf</a>
    表达二:<a href=# onclick="window.location='dd';return false">afdsadsf</a>其实楼主的帖子实质就是为什么"表达一"不可行而"表达二"却可以。我想应该是:虽然A的herf等于#.但他的意思是跳转到当前地址,就相当于地址不变,虽然对于窗口里的内容没有改变,但这个行为却是要发生的。
    所以对于"表达一"是先响应window.location='xx.htm'跳到xx.htm页。然后马上又href=#,又跳到回来了。这是因为,有些元素有缺省行为,比如 A.他的onclick缺省行为就是跳转到地址href=xx.还有 form的submit的onclick缺省行为就是提交表单.
    缺省行为的概念就是,不管你是否再给他添加onclick行为,这个动作总是缺省要执行的。比如这个例子<a href="javascript:alert('#')" onclick="alert('click')">afdsadsf</a>。当然缺省行为是可以取消的,用 event.returnValue= false就可以取消,可以理解为onclick的行为执行到此就打止。比如<a href="javascript:alert('#')" onclick="alert('click');event.returnValue=false">afdsadsf</a>。而 return false 就相当于 event.returnValue=false; 还有一个应用广泛的例子。那就是form提交之前的js验证。有两种写法:<form onsubmit="return youFun()"> 和 <form onsubmit="youFun()">前者,如果所填表单有误就return false.而后者,必须加上
    event.returnValue=false;光用return false根本没用。我的水平也仅能总结出这种现象,至于为什么return(false) = event.returnValue, 而且为什么还必须写成onsubmit="return youFun()"才行,而onsubmit="youFun()"光由youFun()来return false还不行 的实质我就无法理解了。 :(我特意装了opera 5 浏览器来做实验,和ie5一样。以上解释完全符合。至于ie6是不是对,我没有,没有作过实验。
      

  3.   

    lanbor(兰波)分析的好仔细,好!非常感谢!不过在ie6中,这两种代码效果可是完全一样的哎,也许真是ie5的bug
      

  4.   

    我到觉得是ie6的bug.哈哈。因为就他行。哈哈
      

  5.   

    的确,好像ie6改了很多
    我觉得我们应该专门新开一帖讨论ie5,ie5.5,ie6的区别
      

  6.   

    IE的脚本控制里面,5\6根本方法不一样,所以我从来都是使用两套VBS的,判断版本,然后调用相应的文件
      

  7.   

    <a href="javascript:viod(null)" onclick="reName(61);return false;">asdf</a>
    我是初学者,我认为之所以要返回false是因为你不需要告诉事件句柄是否调用结束,释放这个句柄.或许ie5缺省值是false,ie6放弃了这个缺省吧.我想任何时候使用事件句柄时返回一个false永远是安全的