IE6中a标签location.href失效解决方法
今天遇见IE6一个location.href的bug,具体情况是这样的,IE6下,在a标签中,将href写成javascript:;javascript:void(0);,并且给这个标签绑定onclick事件,点击后,执行location.href实现页面跳转,例如下面的代码: <a href="javascitp:;" onclick="toURL()">点击跳转</a> 或者 <a href="javascitp:void(0);" onclick="toURL()">点击跳转</a> toURL函数的代码如下所示: function toURL(){ location.href = "http://js8.in"; } 这样在非IE6浏览器下都可以使用,但是在IE6下就是跳转不了,而且不报错,在location.href之后的代码,例如(alert(1);)也是执行的。 IE6下location.href失效解决的方法解决IE6中a标签中location.href失效的方式就是a标签中的href不用使用javascript:;或javascript:void(0);。具体原因还不清楚,不过我们可以使用href=”#”来代替。 <a href=http://www.js8.in/"###" onclick="toURL()">正常的跳转</a> 还有一种方式就是,在toURL函数里面将a标签的href通过setAttribute设置为“#”,然后再使用location.href跳转也是可以的。 另外可以通过获取DOM节点,然后绑定onclick事件的方式,也是可以解决上面的问题的,例如下面的代码: var as = document.getElementsByTagName('a'); for (var i=0;i<as.length;i++) { as[i].onclick=function() { window.location.href="http://www.js8.in"; return false; } } 写在最后IE6——前端的噩梦还在继续。 (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |