A-A+

js IE6超级链接window.location.href不跳转的bug解决办法

2016年10月16日 前端设计 暂无评论 阅读 6 views 次

本文章给大家介绍js IE6超级链接window.location.href不跳转的bug解决办法,有碰到此类问题的朋友可参考。

今天遇到个很诡异的问题,就是如下代码:

  1. <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 或者 阻止默认事件,才能进行正常的页面跳转.

试验如下,代码如下:

  1. var goUrl = function(url) {  
  2.  if (!url) return ;  
  3.  window.location.href = url;  
  4. }  
  5.   
  6. 1、<a href=”javascript:;” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);”>跳转1</a>  
  7. 2、<a href=”javascript:void(0);” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);”>跳转2</a>  
  8. 3、<a href=”javascript:void(0);” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);return false;”>跳转3</a>  
  9. 4、<a href=”#” onclick=”javascript:goUrl(‘https://www.xiariboke.net’);”>跳转4</a>  
  10. 5、<a href=”###” onclick=”javascript:goUrl(‘http://wwwxiaribokebaidu.com’);”>跳转5</a>  

其中,3、4、5 在ie6下面都可以跳转。1,2不能跳转。

原因:使用return false 或者 框架(Ext jQuery)自带的禁用事件方法 来屏蔽默认事件。

注意:在jQuery事件中,要用 event.preventDefault(); 来阻止默认事件的,代码如下:

  1. <a href="javascrpt:;" id="recommendGoodsAdd">添加推荐产品</a>  
  2. //  
  3. $("#recommendGoodsAdd").click(function(event){  
  4.  window.location.href = "https://www.xiariboke.net/";  
  5.  event.preventDefault();  
  6. }  
标签:

给我留言