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

如何阻止JS代码立即执行,使页面加载时h1显示指定文本?

解决方案

你的问题出在当前JS代码会页面一加载就自动执行,直接修改了h1的内容。要实现页面加载时h1保持“Refresh Page”,同时能触发游戏逻辑,只需要把游戏代码封装成函数,让它在用户操作(比如点击标题)时才执行,步骤如下:

1. 修改JavaScript代码

把所有游戏逻辑封装成函数,并给h1添加点击触发的事件:

// 封装游戏逻辑到函数里
function playGame() {
  let randomNumber1 = Math.floor(Math.random() * 6 + 1);
  let randomNumber2 = Math.floor(Math.random() * 6 + 1);

  // 修改骰子图片
  document.getElementsByClassName("dice-1")[0].src = "Images/dice" + randomNumber1 + ".png";
  document.getElementsByClassName("dice-2")[0].src = "Images/dice" + randomNumber2 + ".png";

  // 判断胜负并修改标题
  if (randomNumber1 > randomNumber2) {
    document.querySelector("h1").innerHTML = "🎉 Player 1 wins 🎉";
  } else if (randomNumber1 < randomNumber2) {
    document.querySelector("h1").innerHTML = "🎉 Player 2 wins 🎉";
  } else {
    document.querySelector("h1").innerHTML = "Draw!!";
  }
}

// 给h1添加点击事件,点击时触发游戏
document.querySelector("h1").addEventListener("click", function() {
  playGame();
});

补充说明:原来的代码里把图片src的赋值结果存在变量里做比较,实际比较的是URL字符串,这会导致逻辑错误(比如dice6.png的字符串排序比dice10.png靠前,但点数6是小于10的),所以直接比较生成的随机点数才是正确的做法。

2. 保持HTML代码不变

你的现有HTML代码无需修改,初始的h1已经设置为“Refresh Page”,页面加载时不会被JS自动修改,只有用户点击h1标题时才会触发游戏、更新标题内容。

现在页面加载完成后h1会稳定显示“Refresh Page”,点击标题即可运行游戏并展示结果,刷新页面后会回到初始状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:38:19