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

如何用JavaScript持续刷新已打开网站直至用户手动终止

实现持续刷新网页直到手动取消(绕开Chrome拦截扩展)

你的原代码存在两个核心问题:

  • 用while(true)同步死循环会直接卡死浏览器主线程,刷新操作根本没法执行
  • 错误使用window.open_site,变量open_site本身就是窗口实例,不需要加window.前缀

下面是修正后的可用代码,解决了以上问题,还增加了手动取消和窗口状态判断的功能:

<html>
<script>
// 获取目标网站地址
const siteUrl = prompt("请输入要刷新的网站地址:");
if (!siteUrl) {
  alert("未输入有效地址,操作取消");
} else {
  // 打开目标网站窗口
  let targetWindow = window.open(siteUrl);
  // 设置定时刷新,每1秒刷新一次(可根据需求调整间隔,单位毫秒)
  const refreshInterval = setInterval(() => {
    if (targetWindow && !targetWindow.closed) {
      targetWindow.location.reload();
    } else {
      // 目标窗口被关闭时自动停止刷新
      clearInterval(refreshInterval);
      alert("目标窗口已关闭,刷新已停止");
    }
  }, 1000);

  // 手动取消方式:点击当前页面任意位置,停止刷新并关闭目标窗口
  document.body.addEventListener('click', () => {
    clearInterval(refreshInterval);
    if (targetWindow && !targetWindow.closed) {
      targetWindow.close();
    }
    alert("已手动取消刷新操作");
  });

  // 页面添加操作提示
  document.body.innerHTML = `<p style="font-size:16px; padding:20px;">已开始持续刷新目标网站</p><p style="font-size:16px; padding:0 20px;">点击本页面任意位置可停止刷新并关闭目标窗口</p>`;
}
</script>
</html>

关键改进说明:

  • 用setInterval替代同步死循环:定时执行刷新操作,不会阻塞浏览器主线程,确保页面和刷新功能都能正常运行
  • 窗口状态校验:每次刷新前检查目标窗口是否还存在,避免报错
  • 手动取消机制:点击当前页面就能停止刷新并关闭目标窗口,操作更方便
  • 输入校验:未输入有效地址时直接终止流程,避免无效操作
  • 页面提示:明确告知用户操作方式,降低使用门槛

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:13:24