自动跳过所有类型的弹窗提示(alert、confirm、prompt),支持日志记录和自定义配置
一个功能强大的用户脚本,用于自动跳过网页中所有类型的弹窗提示(alert、confirm、prompt)。
首先需要安装一个用户脚本管理器:
默认支持以下网站:
如需添加其他网站,请修改脚本头部的 @match 行。
脚本安装后会自动运行,无需任何操作。所有弹窗将被自动拦截:
true(可配置)打开浏览器控制台(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)
A: 请检查以下几点:
@match 规则A: 在脚本头部添加新的 @match 行:
// @match http://your-website.com/*
// @match https://another-site.com/*
或使用通配符匹配所有网站(不推荐):
// @match *://*/*
A: 可以在脚本中添加域名检测:
// 根据域名设置不同配置
if (location.hostname === 'sysaq.imu.edu.cn') {
CONFIG.confirmReturn = true;
} else if (location.hostname === 'labsra.scau.edu.cn') {
CONFIG.confirmReturn = false;
}
A: 三种方法:
window.popupBlocker.restore() 恢复弹窗A:
trueconfirmReturn 和 promptReturn 来调整A: 启用日志记录查看详细信息:
window.popupBlocker.updateConfig({
enableLog: true,
showNotification: true
})
然后观察控制台输出和屏幕通知。
@run-at document-start 立即生效MIT License - 自由使用、修改和分发
欢迎提交问题和改进建议!
享受无打扰的浏览体验! 🎉