A-A+
js IE6超级链接window.location.href不跳转的bug解决办法
本文章给大家介绍js IE6超级链接window.location.href不跳转的bug解决办法,有碰到此类问题的朋友可参考。
今天遇到个很诡异的问题,就是如下代码:
- <a href=”javascript:void(0);” onclick=”window.location.href=url”></a>
在IE6下面没反应,不跳转到onclik事件中的“window.location.href”。
当时我们在网上找了篇文章很快就解决了,但是文章中没有说明具体原因在哪里,只是说在“window.location.href”后面加一个”return false“,当时马上建了个test.html,试了下确实可以,而且试了之后还发现IE6下是被href=”javascript:void(0)”覆盖了,这问题看上去很简单,但是为什么其他浏览器没有被覆盖,但对原因到底在哪里还是一头雾水。
IE6 页面跳转事件,必须返回false 或者 阻止默认事件,才能进行正常的页面跳转.
试验如下,代码如下:
- var goUrl = function(url) {
- if (!url) return ;
- window.location.href = url;
- }
- 1、<a href=”javascript:;” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);”>跳转1</a>
- 2、<a href=”javascript:void(0);” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);”>跳转2</a>
- 3、<a href=”javascript:void(0);” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);return false;”>跳转3</a>
- 4、<a href=”#” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);”>跳转4</a>
- 5、<a href=”###” onclick=”javascript:goUrl(‘http://wwwxiaribokebaidu.com’);”>跳转5</a>
其中,3、4、5 在ie6下面都可以跳转。1,2不能跳转。
原因:使用return false 或者 框架(Ext jQuery)自带的禁用事件方法 来屏蔽默认事件。
注意:在jQuery事件中,要用 event.preventDefault(); 来阻止默认事件的,代码如下:
- <a href="javascrpt:;" id="recommendGoodsAdd">添加推荐产品</a>
- //
- $("#recommendGoodsAdd").click(function(event){
- window.location.href = "https://www.xiariboke.net/";
- event.preventDefault();
- }