原文地址:http://www.imeetyou.net/article.asp?id=447
关于IE6下 window.location.href 的跳转无效
近日用到JS,发现在IE6下 window.location.href="";会出现跳转无效
当鼠标点击到相应的操作上时,没有反映,于是做了如下实验;
第一种方法,全部事件写入到相应的操作上。
<a href="javascript:void(0);" onclick="goUrl()">跳转1</a> <a href="javascript:void(0);" onclick="goUrl(); return false;" >跳转2</a> <a href="#" onclick="goUrl()" >跳转3</a> <a href="###" onclick="goUrl()" >跳转4</a> <script type="text/javascript"> function goUrl() { window.location.href="http://www.imeetyou.net"; } </script>
如上,跳转1,IE6, 无法跳转,
跳转2、跳转3、跳转4均可以正常跳转;
注意,如果将2的 return false; 去掉,放入到 goUrl 中 也是无效的;
第二种,从DOM中获取要绑定事件的节点,绑定要执行的事件;
<a href="javascript:void(0);" >跳转1</a> <a href="" >跳转2</a> <a href="#" >跳转3</a> <a href="###" >跳转4</a> <script type="text/javascript"> var as = document.getElementsByTagName('a'); for (var i=0;i<as.length;i++) { as[i].onclick=function() { window.location.href="http://www.imeetyou.net"; return false; } } </script>
可以看到,第二种绑定事件方式,对 a 上的 href 无要求。各浏览器下执行情况也良好
所以,首先推荐获取节点的事件绑定方式。