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

Tampermonkey脚本自动刷新预约网站检测可约日期无警报问题求解

修复方案

现有代码问题

  • 语法错误:if判断条件多写了1个左括号,直接导致检测代码报错无法运行
  • 定时器逻辑错误:使用setTimeout实现定时刷新,却调用未定义的clearInterval(gun),既无法停止刷新,也会额外抛出报错
  • 执行时机问题:未等待页面DOM加载完成就执行元素检测,大概率会找不到目标元素
  • 刷新逻辑冲突:检测到可预约日期后没有停止刷新逻辑,页面会继续刷新导致警报无法触发
  • 音频播放限制:现代浏览器默认禁止非用户交互场景下自动播放音频,首次运行需要手动点击一次页面解除限制

完整修复后脚本

将以下代码替换你现有Tampermonkey脚本内容,注意替换@match字段为你要监控的预约页面地址:

// ==UserScript==
// @name         预约日期自动检测提醒
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  自动刷新预约页面,检测到可约日期触发声音警报
// @match        *://你的预约网站域名/预约页面路径/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // 等待页面完全加载后再执行检测
    window.addEventListener('load', () => {
        // 检测可预约日期元素
        const availableDays = document.getElementsByClassName('day activeClass');
        if (availableDays.length > 0) {
            // 检测到可约日期,播放警报
            new Audio('http://soundbible.com/grab.php?id=287&type=mp3').play();
            // 终止执行,不再刷新页面
            return;
        }
        // 无可用日期,50秒后自动刷新
        setTimeout(() => location.reload(), 50 * 1000);
    });
})();

注意事项

  • 首次运行脚本时手动点击一次页面任意位置,解除浏览器音频自动播放限制
  • 若后续检测失效,可打开浏览器控制台(F12打开后切换到Console标签)查看报错,确认目标可预约日期的类名是否发生变动
  • 若音频地址跨域无法播放,可将音频文件转成base64格式直接嵌入脚本,避免外链访问问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:36:05