Chrome(macOS)下Tampermonkey脚本GM_notification函数失效问题
解决Tampermonkey中GM_notification无弹窗无报错的思路
系统权限先查透
- 检查Chrome通知权限:打开Chrome设置→隐私和安全→网站设置→通知,确认当前访问的网站和Tampermonkey相关权限为“允许”状态,避免误设为阻止。
- 检查macOS系统通知:打开系统偏好设置→通知→找到Chrome,确保允许通知,通知样式不要选“无”,同时确认专注模式未屏蔽Chrome通知。
Tampermonkey配置细节核对
- 必须添加@grant声明:脚本头部一定要写
// @grant GM_notification,不管用同步的GM_notification还是异步的GM.notification,没有这个声明函数无法正常生效。 - 关闭安全模式:进入Tampermonkey设置→安全,关掉“安全模式”(部分版本叫沙箱模式),该模式会限制GM函数的权限范围。
- 重置Tampermonkey配置:先备份好个人脚本,再进入设置→重置,恢复默认配置后测试官方示例,排除自定义配置导致的异常。
极简脚本+原生验证
- 使用纯净测试脚本:去掉所有自定义代码,直接运行以下极简版本,排除代码干扰:
// ==UserScript== // @name GM_notification Test // @namespace http://tampermonkey.net/ // @version 0.1 // @description Test GM_notification // @author You // @match *://*/* // @grant GM_notification // ==/UserScript== (function() { 'use strict'; console.log("Test script running"); GM_notification({ text: "This is a test notification", title: "Tampermonkey Test", timeout: 5000 }); })(); - 验证Chrome原生通知:在Chrome控制台直接执行
new Notification('Native Test', {body: 'Check if native notifications work'}),如果原生通知也不弹出,说明问题出在系统或Chrome本身,与Tampermonkey无关。
版本兼容性排查
- 降级Tampermonkey:v5.0.0可能存在兼容性bug,尝试降级到v4.19.0这类稳定版本后再测试GM_notification功能。
- 重装/更新Chrome:虽然当前是120版本,但不排除浏览器本身存在异常,尝试重装或更新到最新稳定版。
内容的提问来源于stack exchange,提问作者J H
相关产品推荐
相关产品推荐

