差不多吧,总之,同一块的代码肯定要运行结果后才会将控制权交回浏览器的。
location.href是比较特殊的,href是location的属性,对它赋值location只是在调用当时保留了一条转向请求而已,而且也只保留一条,如果已有保留内容,后面的赋值会忽略。
当控制权交回浏览器后,浏览器会去检查是否有转向请求,如果有,则立即转向了。
这也就是为什么连续写两次转向,只有第一次生效的原因。但这个原因含有我个人推测在里面,个人推测部分为“只保留一条转向请求”这点。
location.href是比较特殊的,href是location的属性,对它赋值location只是在调用当时保留了一条转向请求而已,而且也只保留一条,如果已有保留内容,后面的赋值会忽略。
当控制权交回浏览器后,浏览器会去检查是否有转向请求,如果有,则立即转向了。
这也就是为什么连续写两次转向,只有第一次生效的原因。但这个原因含有我个人推测在里面,个人推测部分为“只保留一条转向请求”这点。
即使两个location
第一个:
location.href="a.htm";
location.href="b.htm";
结果转向B
第二个:
location.href="b.htm";
location.href="a.htm";
结果转向A由于location的href属性是单值的,当第一句location改变了值,第二句的location覆盖了第一个的值,当这段JS执行完,浏览器获得控制权时检查是否有转向请求,如果有,则立即转向了.
对不起。这个是我记错……你说的正确。