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排序算法(快速排序)
    ThinkPHP5.0源码学习之注册错误和异常处理机制
    ThinkPHP5.0源码学习之注册自动加载
    C高级 跨平台协程库
    C中级 MariaDB Connector/C API 编程教程
    C高级 框架开发中红黑树结构
    c json实战引擎四 , 最后❤跳跃
    C基础 万能动态数组
    C基础 内存统一入口
    C基础 一个可以改变linux的函数getch
  • 原文地址:https://www.cnblogs.com/52php/p/5666373.html
Copyright © 2011-2022 走看看