You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML游戏脚本最后3行代码未运行 alert弹窗无法触发问题

HTML游戏脚本不弹窗问题排查与修复

问题原因

  • 变量条件声明导致引用错误:level3screen2仅当玩家在Level3的第一个输入框输入right时才会被定义,如果玩家输入up或者其他任意内容,level3screen2为未定义,后续所有判断level3screen2的代码都会触发JS引用错误,脚本直接终止,所以对应的alert不会弹出。
  • 逻辑分支遗漏:当玩家在Level3的第一个输入框输入up时,你将返回值赋值给了level3screen4,但代码中完全没有针对level3screen4的判断逻辑,该分支走通后没有任何后续执行逻辑,自然不会弹出提示。
  • 命名冲突风险:你使用了screen作为变量名,这是浏览器内置的全局对象名,存在命名冲突导致逻辑异常的隐患。

修复方案

修复后完整代码

<script>
// 提前声明所有变量,避免条件声明导致的未定义问题
var userInput1, level2Input1, level2Input2, level3Input1, level3Input2;
// 替换和内置对象重名的screen变量
userInput1 = prompt("◽◽");
if(userInput1 == "right") {
    alert("◾◽" + "\n" + "You won!");
}
alert("Level 2");
level2Input1 = prompt("◽◾◽");
if(level2Input1 == "left") {
    level2Input2 = prompt("◽◽◾");
    if(level2Input2 == "right") {
        alert("◽◾◽" + "\n" + "You can't move anymore." + "\n" + "You lost");
    } else if(level2Input2 == "left") {
        alert("◽◾◾" + "\n" + "You won!");
    }
}
alert("Level 3");
level3Input1 = prompt("◾◽" + "\n" + "◽◾");
if(level3Input1 == "right") {
    level3Input2 = prompt("◾◽" + "\n" + "◾◽");
    if(level3Input2 == "right" || level3Input2 == "up") {
        alert("◾◽" + "\n" + "◾◾" + "\n" + "You won!");
    } else if(level3Input2 == "left" || level3Input2 == "down") {
        alert("You can't move anymore" + "\n" + "You lost");
    }
} else if(level3Input1 == "up") {
    // 补全up分支的判断逻辑,可根据你的实际玩法调整规则
    level3Input2 = prompt("◽◽" + "\n" + "◾◾");
    // 示例规则,可自行修改
    if(level3Input2 == "right") {
        alert("◽◾" + "\n" + "◾◾" + "\n" + "You won!");
    } else {
        alert("You can't move anymore" + "\n" + "You lost");
    }
}
</script>

核心修改点

  • 所有变量提前声明,避免条件声明导致的未定义引用错误
  • 补全了up分支的逻辑,走到该分支时也会有对应的提示弹出
  • 更换了和浏览器内置对象重名的变量名,避免潜在冲突
  • 增加了条件嵌套,避免无关分支的变量被误判断

内容的提问来源于stack exchange,提问作者program

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:09:03