zoukankan      html  css  js  c++  java
  • JavaScript在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('http://www.baidu.com');">跳转1</a>

    2、<a href="javascript:void(0);" onclick="javascript:goUrl('http://www.baidu.com');">跳转2</a>

    3、<a href="javascript:void(0);" onclick="javascript:goUrl('http://www.baidu.com');return false;">跳转3</a>

    4、<a href="#" onclick="javascript:goUrl('http://www.baidu.com');">跳转4</a>

    5、<a href="###" onclick="javascript:goUrl('http://www.baidu.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 = "http://blog.snsgou.com/";
    	event.preventDefault();
    }

    另外,javascript:void(0);的意思是使整个页面不刷新。void方式不返回任何值,即返回undefined。

  • 相关阅读:
    [操作系统]处理机调度的概念和层次
    [操作系统]线程的概念和多线程模型
    [操作系统]进程通信
    [操作系统]进程的控制
    [操作系统]进程的状态与转换
    [操作系统]进程的定义
    [操作系统]操作系统中断机制
    [操作系统]操作系统的运行机制和体系结构
    [操作系统] 操作系统的特征-并发性/共享性/虚拟性/异步性
    [PHP] PHP数组的哈希表实现
  • 原文地址:https://www.cnblogs.com/52php/p/5666373.html
Copyright © 2011-2022 走看看