经常有如下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值,
<a href="javascript:void(0);" onclick="javascript:location.href='http://www.baidu.com/';return false;">test js location.replace()</a>
以阻止执行href属性中的代码,
这样就可以让浏览器顺利跳转。
(完)