簡體   English   中英

Chrome中出現警報后如何重新加載javascript中的頁面

[英]How to reload page in javascript after an alert in Chrome

我正在瀏覽游戲Breakout的MDN canvas游戲教程。 當球通過球拍時,游戲應結束,頁面重新加載,重新開始。

代碼如下:

 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();
     }
 }

在FireFox和Safari中,此操作按預期運行,在消除警報后,頁面將重新加載,腳本從頭開始。

但是,在Chrome中,當球碰到畫布的y邊界的末端並顯示警報時,如果您單擊Ok使其消失,該頁面似乎不會重新加載。 取而代之的是,球繼續移動,並且在每次迭代之后,都會顯示一個新的警報(如果您單擊“ Ok關閉該警報,它將繼續而不會重新加載)。

任何人都知道發生了什么,為什么頁面無法重新加載?

這是完整的代碼

JSFiddle中可以觀察到與Chrome中相同的功能

更新:在Chrome的控制台中,如果嘗試使用document.location.reload() ,則會得到undefined document.location將按預期結果在localhost中。

調用重新加載后清除間隔。

更改setInterval(draw, 10); var interval = setInterval(draw, 10);

添加clearInterval(interval); document.location.reload();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM