梦想的翅膀 2012-06-14
经常有如下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的代码最后,加上returnfalse;让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>