location.href= 'index.html';这句什么时候会触发的? 这段代码放到onload里面写是同样效果 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转向的目标页面为最后一次设置的location.href值。 <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><script defer="defer">function doclick(){location.href = 'a.html';alert(1)location.href='b.html';alert(2);setTimeout('alert(3)',1);}document.getElementById('bb').attachEvent('onclick', doclick);</script><body><div id="bb">dd</div></body></html>测试上面代码,弹出1,2,3没有, setTimeout是不在栈中吗? setTimeout 已经是另外一个进程了 setTimeout本身已经执行,只是它所要求调用的函数并未入栈(就算时间设为0也不会入栈),因为setTimeout的入栈操作也是要在调用栈为空后才执行。不过,没试过,先setTimeout,再转向,我马上试试。 setTimeout不可能是另外一进程,而且这里也不涉及多线程。楼上的可不要再误导人了。准确来理解,它只是延迟入栈时间而已。==“栈”指 调用栈。 看来入栈时应该有作是否转向的判断,一旦也有转向操作,便会取消一切进栈请求。====================================================如果这句成立,location.href后面的语句应该不能再入栈,就是说不能执行以下的语句才对呀 hansonboy(良) 误会我意思了,调用栈是JS解释器维护的,一般进栈的操作是由某事件引起的,是运行时确定的,这个是真难解释清楚的。转向这个动作是应该由浏览器发出的,它要能发出这个动作,必须等JS对已发生事件处理完成,JS如何判断已处理完成呢?全靠调用栈,当调用栈为空时,JS认为事件处理完成,这时若有新事件发生需要入栈,就有判断发生了,如果页面已发生转向事件,则未入栈事件全部禁止入栈。所以,入栈与否是由JS解释器控制的,当事件发生以后,只要处理已入栈,那么在栈内的所有调用都会运行直到栈为空。对本例那也就是说,location.href = "xx.htm";以及之后的代码其实均已入栈,当然就会运行。 求教懂google map的达人,看下这个站是不是从google map上实时取到的数据 ActiveX 新手的小问题 问个showModalDialog的 一个JS问题,请高手指点! 设置为首页的判断? 能提高 split 的字符串的效率吗? (快来,送分啊) 请大家来帮忙 关于下拉菜单,解决后马上送分 谁弄个象WINDOWS XP左侧的下拉菜单的代码给我撒 解决马上给分... 没分了,只求好心人了,一个关于 IFRAME 的简单问题
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script defer="defer">
function doclick(){location.href = 'a.html';
alert(1)
location.href='b.html';
alert(2);
setTimeout('alert(3)',1);
}document.getElementById('bb').attachEvent('onclick', doclick);
</script>
<body>
<div id="bb">dd</div>
</body>
</html>
测试上面代码,弹出1,2,3没有, setTimeout是不在栈中吗?
不过,没试过,先setTimeout,再转向,我马上试试。
楼上的可不要再误导人了。准确来理解,它只是延迟入栈时间而已。
==
“栈”指 调用栈。