// ==UserScript== // @name 北医三继续播自动确定 // @namespace http://tampermonkey.net/ // @version 0.2.1 // @description 当页面出现可见的"继续播放提醒"弹窗时,自动点击确定按钮 // @author Mzky // @match *://edu.puh3.net.cn/* // @grant none // ==/UserScript== (function() { 'use strict'; // 检查并点击确定按钮的函数 function checkAndClickConfirm() { // 查找包含"继续播放提醒"文字的标题元素 const titleElements = document.querySelectorAll('.x-modal-title'); let targetModal = null; titleElements.forEach(title => { if (title.textContent.trim() === '继续播放提醒') { // 找到目标弹窗 targetModal = title.closest('.x-modal'); } }); // 如果找到目标弹窗,且弹窗是显示状态(display: block) if (targetModal && window.getComputedStyle(targetModal).display === 'block') { const confirmButton = targetModal.querySelector('.x-modal-button.OK'); if (confirmButton) { console.log('检测到可见的"继续播放提醒"弹窗,自动点击确定按钮'); confirmButton.click(); return true; } } return false; } // 初始检查 checkAndClickConfirm(); // 创建MutationObserver监听DOM变化,以便检测动态加载的弹窗 const observer = new MutationObserver((mutations) => { mutations.forEach(mutation => { // 检查是否有新节点添加或属性变化 if (mutation.addedNodes.length > 0 || mutation.type === 'attributes') { checkAndClickConfirm(); } }); }); // 配置观察选项,包括属性变化 const observerConfig = { childList: true, subtree: true, attributes: true, attributeFilter: ['style'] // 只观察style属性变化 }; // 开始观察整个文档 observer.observe(document.body, observerConfig); // 额外添加定时检查作为补充 setInterval(checkAndClickConfirm, 1000); })();