日期:2014-05-16  浏览次数:20363 次

Js在IE6下导致js跳转失败的元凶,<a href="javascript:void(0);" >
经常有如下JS跳转写法:

<a href="javascript:void(0);" onclick="javascript:location.replace ('http://www.baidu.com/');">test js location.replace()</a>
<a href="javascript:void(0);" onclick="javascript:location.href ='http://www.baidu.com/';">test js location.replace()</a> 

        经测试,在IE6下上述两种JS跳转履行无响应,其它浏览器下均正常。
        细心解析,猜测IE6下a链接的跳转会收到href属性中代码的影响,上述代码的履行过程,貌似是先履行 onclick事务中的代码,并且是在onclick事务的回调函数返回true 的景象下,再履行href属性中的代码,然后才作出跳迁移转变作。而恰是void(0);代码阻拦了浏览器跳转,所以在onclick的代码最后,加上return false; 让onclick回调函数返回false值,以阻拦履行 href属性中的代码,如许就可以让浏览器顺利跳转。

<a href="javascript:void(0);" onclick="javascript:location.replace ('http://www.baidu.com/'); return false;">test js location.replace()</a>
<a href="javascript:void(0);" onclick="javascript:location.href ='http://www.baidu.com/'; return false;">test js location.replace()</a>