跳过弹窗提示 - 增强版

自动跳过所有类型的弹窗提示(alert、confirm、prompt),支持日志记录和自定义配置

작성자
xln-tj
일일 설치 수
0
총 설치 수
714
평점
2 0 0
버전
2025.10.19
생성일
2022-09-21
갱신일
2025-10-19
크기
5.05KB
라이선스
MIT
적용 사이트

跳过弹窗提示 - 增强版

一个功能强大的用户脚本,用于自动跳过网页中所有类型的弹窗提示(alert、confirm、prompt)。

📋 目录

✨ 功能特性

  • 自动拦截三种弹窗:alert、confirm、prompt
  • 即时生效:页面加载前就开始拦截,无延迟
  • 统计功能:记录拦截次数,便于监控
  • 日志记录:可选的控制台日志输出
  • 屏幕通知:可选的右下角拦截提示
  • 灵活配置:支持自定义返回值和行为
  • 控制接口:提供完整的 JavaScript API
  • 可恢复性:可随时恢复原始弹窗功能

📦 安装方法

前提条件

首先需要安装一个用户脚本管理器:

安装脚本

  1. 点击用户脚本管理器图标
  2. 选择「添加新脚本」或「创建新脚本」
  3. 将完整的脚本代码复制粘贴到编辑器中
  4. 保存脚本(Ctrl+S 或 Cmd+S)

支持的网站

默认支持以下网站:

如需添加其他网站,请修改脚本头部的 @match 行。

📖 使用说明

基础使用

脚本安装后会自动运行,无需任何操作。所有弹窗将被自动拦截:

  • alert 弹窗:直接跳过,不显示任何内容
  • confirm 弹窗:自动返回 true(可配置)
  • prompt 弹窗:自动返回空字符串(可配置)

查看拦截统计

打开浏览器控制台(F12),输入:

window.popupBlocker.showStats()

输出示例:

[弹窗拦截] 统计信息: {
  Alert 拦截次数: 5,
  Confirm 拦截次数: 2,
  Prompt 拦截次数: 1,
  总计: 8
}

⚙️ 配置选项

在脚本代码中找到 CONFIG 对象,可以修改以下选项:

const CONFIG = {
    enableLog: false,           // 是否在控制台记录被拦截的弹窗
    logPrefix: '[弹窗拦截]',    // 日志前缀
    confirmReturn: true,        // confirm 函数的返回值
    promptReturn: '',           // prompt 函数的返回值
    showNotification: false,    // 是否显示通知(右下角提示)
    notificationDuration: 2000  // 通知显示时长(毫秒)
};

配置说明

选项 类型 默认值 说明
enableLog Boolean false 启用后会在控制台输出拦截日志
logPrefix String '[弹窗拦截]' 日志消息的前缀
confirmReturn Boolean true confirm 弹窗的返回值
promptReturn String '' prompt 弹窗的返回值
showNotification Boolean false 在右下角显示拦截通知
notificationDuration Number 2000 通知显示时长(毫秒)

运行时修改配置

无需编辑脚本,可以在控制台动态修改配置:

// 启用日志记录
window.popupBlocker.updateConfig({ enableLog: true })

// 启用屏幕通知
window.popupBlocker.updateConfig({ showNotification: true })

// 修改 confirm 返回值为 false
window.popupBlocker.updateConfig({ confirmReturn: false })

// 修改 prompt 返回值
window.popupBlocker.updateConfig({ promptReturn: '默认文本' })

// 查看当前配置
window.popupBlocker.getConfig()

🎮 控制接口

脚本提供了完整的 JavaScript API,可通过 window.popupBlocker 访问:

showStats()

显示拦截统计信息

window.popupBlocker.showStats()

getStats()

获取统计数据对象

const stats = window.popupBlocker.getStats()
console.log(`总共拦截了 ${stats.alertCount} 个 alert 弹窗`)

resetStats()

重置所有统计计数

window.popupBlocker.resetStats()

restore()

恢复原始弹窗函数(用于调试)

window.popupBlocker.restore()
// 现在弹窗会正常显示

updateConfig(newConfig)

更新配置选项

window.popupBlocker.updateConfig({
    enableLog: true,
    showNotification: true
})

getConfig()

获取当前配置

const config = window.popupBlocker.getConfig()
console.log(config)

❓ 常见问题

Q: 脚本不生效怎么办?

A: 请检查以下几点:

  1. 确认已安装用户脚本管理器(如 Tampermonkey)
  2. 确认脚本已启用(管理器图标上没有禁用标记)
  3. 确认当前网站匹配 @match 规则
  4. 尝试刷新页面(Ctrl+F5 强制刷新)
  5. 查看控制台是否有错误信息

Q: 如何添加更多网站?

A: 在脚本头部添加新的 @match 行:

// @match        http://your-website.com/*
// @match        https://another-site.com/*

或使用通配符匹配所有网站(不推荐):

// @match        *://*/*

Q: 能否针对特定网站使用不同配置?

A: 可以在脚本中添加域名检测:

// 根据域名设置不同配置
if (location.hostname === 'sysaq.imu.edu.cn') {
    CONFIG.confirmReturn = true;
} else if (location.hostname === 'labsra.scau.edu.cn') {
    CONFIG.confirmReturn = false;
}

Q: 如何暂时禁用脚本?

A: 三种方法:

  1. 在用户脚本管理器中切换脚本开关
  2. 在控制台运行 window.popupBlocker.restore() 恢复弹窗
  3. 在脚本管理器中编辑脚本,注释掉主要代码

Q: 会影响网站正常功能吗?

A:

  • 大多数情况下不会影响
  • 如果某些功能需要用户确认,confirm 会自动返回 true
  • 如果需要用户输入,prompt 会返回空字符串
  • 可以通过修改 confirmReturnpromptReturn 来调整

Q: 如何调试问题?

A: 启用日志记录查看详细信息:

window.popupBlocker.updateConfig({ 
    enableLog: true,
    showNotification: true 
})

然后观察控制台输出和屏幕通知。

📝 更新日志

v2025.10.19(最新版)

  • ✨ 新增 prompt 弹窗拦截
  • ✨ 添加统计功能
  • ✨ 添加可配置选项
  • ✨ 提供完整的控制 API
  • ✨ 支持运行时配置修改
  • ✨ 可选的屏幕通知
  • ✨ 可选的日志记录
  • 🔧 使用 @run-at document-start 立即生效
  • 🔧 移除不必要的 5 秒延迟
  • 🔧 代码重构,使用 IIFE 避免全局污染

v2024.9.14(原始版)

  • 基础的 alert 和 confirm 拦截功能
  • 5 秒延迟后生效

📄 许可证

MIT License - 自由使用、修改和分发

🤝 贡献

欢迎提交问题和改进建议!

💡 提示

  • 建议在使用前先在测试环境验证
  • 某些重要操作可能需要用户确认,请谨慎使用
  • 可以为不同网站创建不同版本的脚本
  • 定期查看统计信息了解拦截情况

享受无打扰的浏览体验! 🎉