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

JavaScript实现点击按钮后延迟2小时发送Notification通知

你可以通过setTimeout定时器包裹延迟触发的通知逻辑实现需求,2小时对应的毫秒数为 2 * 60 * 60 * 1000 = 7200000。

修改后的完整代码

HTML部分

<button onclick="bell();">发送通知</button>

JS部分

function bell() {
  function notifyMe() {
    if (!("Notification" in window)) {
      alert("当前浏览器不支持系统通知功能");
    }
    else if (Notification.permission === "granted") {
      // 权限已授权,注册定时通知
      scheduleNotify();
    }
    else if (Notification.permission !== 'denied') {
      Notification.requestPermission(function (permission) {
        if (permission === "granted") {
          scheduleNotify();
        }
      });
    }
    
    function scheduleNotify() {
      // 如果你不需要点击后立刻弹出的即时通知,可以删除下面3行代码
      var instantNotification = new Notification('通知已预约', {
        icon: 'blue.svg',
      });
      setTimeout(instantNotification.close.bind(instantNotification), 3000); 

      // 核心逻辑:延迟2小时触发通知
      setTimeout(() => {
        var delayedNotification = new Notification('2小时定时通知', {
          icon: 'blue.svg',
        });      
        delayedNotification.onclick = function () {
          window.open("INDEX.HTML");      
        };
      }, 7200000)
    }
  }
  notifyMe();
}

注意事项

  • 该方案仅在页面保持打开状态时生效,若用户关闭页面,定时器会被销毁,通知无法触发。如果需要关闭页面仍能触发定时通知,需要使用Service Worker搭配Notification Triggers API实现,该API仅支持部分Chromium内核浏览器。
  • 通知需要用户提前授予权限,否则定时结束后也无法弹出通知。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:54:04