原文地址:http://www.imeetyou.net/article.asp?id=447
关于IE6下 window.location.href 的跳转无效
近日用到JS,发现在IE6下 window.location.href="";会出现跳转无效
当鼠标点击到相应的操作上时,没有反映,于是做了如下实验;
第一种方法,全部事件写入到相应的操作上。
<a href="javascript:void(0);" οnclick="goUrl()">跳转1</a>
<a href="javascript:void(0);" οnclick="goUrl(); return false;" >跳转2</a>
<a href="#" οnclick="goUrl()" >跳转3</a>
<a href="###" οnclick="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].οnclick=function() {
window.location.href="http://www.imeetyou.net";
return false;
}
}
</script>
可以看到,第二种绑定事件方式,对 a 上的 href 无要求。各浏览器下执行情况也良好
所以,首先推荐获取节点的事件绑定方式。