差不多吧,总之,同一块的代码肯定要运行结果后才会将控制权交回浏览器的。
location.href是比较特殊的,href是location的属性,对它赋值location只是在调用当时保留了一条转向请求而已,而且也只保留一条,如果已有保留内容,后面的赋值会忽略。
当控制权交回浏览器后,浏览器会去检查是否有转向请求,如果有,则立即转向了。
这也就是为什么连续写两次转向,只有第一次生效的原因。但这个原因含有我个人推测在里面,个人推测部分为“只保留一条转向请求”这点。

解决方案 »

  1.   

    你看这样推测一下呢(照你的方法做了个实验)
    即使两个location
    第一个:
    location.href="a.htm";
    location.href="b.htm";
    结果转向B
    第二个:
    location.href="b.htm";
    location.href="a.htm";
    结果转向A由于location的href属性是单值的,当第一句location改变了值,第二句的location覆盖了第一个的值,当这段JS执行完,浏览器获得控制权时检查是否有转向请求,如果有,则立即转向了.
      

  2.   

    那应该是我记错了,呵呵,原来这个location.href没有像我说那样做。
    对不起。这个是我记错……你说的正确。