在Chrome中发出警报后如何在javascript中重新加载页面
我正在浏览游戏《突破》的MDN canvas游戏教程。当球经过球拍时,游戏结束,页面重新加载,重新开始 代码如下所示:在Chrome中发出警报后如何在javascript中重新加载页面,javascript,google-chrome,reload,ecmascript-5,Javascript,Google Chrome,Reload,Ecmascript 5,我正在浏览游戏《突破》的MDN canvas游戏教程。当球经过球拍时,游戏结束,页面重新加载,重新开始 代码如下所示: if (y + dy < ballRadius) { dy = -dy; } else if(y + dy > canvas.height-ballRadius) { if(x > paddleX && x < paddleX + paddleWidth) { dy = -dy; } el
if (y + dy < ballRadius) {
dy = -dy;
} else if(y + dy > canvas.height-ballRadius) {
if(x > paddleX && x < paddleX + paddleWidth) {
dy = -dy;
} else {
alert("GAME OVER");
document.location.reload();
}
}
if(y+dy画布高度和半径){
如果(x>桨叶x&&x<桨叶x+桨叶宽度){
dy=-dy;
}否则{
警报(“游戏结束”);
document.location.reload();
}
}
在FireFox和Safari中,这会按预期运行,在解除警报后,页面将重新加载,脚本将从头开始
但是,在Chrome中,当球击中画布的y
边界的末端并显示警报后,如果您点击Ok
将其解除,页面不会重新加载。相反,球会继续移动,并且在每次迭代后,会显示一个新的警报(如果您使用Ok
解除警报,它将继续而不重新加载)
有人知道发生了什么,为什么页面无法重新加载吗
在中可以观察到与Chrome相同的功能
更新:在Chrome的控制台中,如果我尝试document.location.reload()
我会得到undefined
<代码>文档。位置按预期生成localhost
调用重新加载后清除间隔 更改
setInterval(图10)代码>至var区间=设定区间(图10)代码>
添加clearInterval(间隔)
在document.location.reload()之后代码>调用重新加载后清除间隔
更改setInterval(图10)代码>至var区间=设定区间(图10)代码>
添加clearInterval(间隔)
在document.location.reload()之后代码>这很有效,谢谢。你能再详细说明一下这里发生了什么吗?显然,你是在告诉它停止事件循环,但不确定Chrome为什么会以这种方式运行,背后是否有任何合理的原因。我将你的代码放在一个单独的页面中进行调试。当游戏结束时,窗口会卡在重新加载中(由微调器显示),因此我认为在Chrome中,允许发出警报阻止页面重新加载,但在其他浏览器中则不允许。这很有效,谢谢。你能再详细说明一下这里发生了什么吗?显然,你是在告诉它停止事件循环,但不确定Chrome为什么会以这种方式运行,背后是否有任何合理的原因。我将你的代码放在一个单独的页面中进行调试。当游戏结束时,窗口会卡在重新加载中(由微调器显示),因此我认为在Chrome中,允许发出警报阻止页面重新加载,但在其他浏览器中则不允许。