Safari无痕模式默认禁用所有扩展,需手动开启“在无痕浏览中允许”开关并重启浏览器;旧版或未声明private_browsing权限的插件即使勾选也无法运行。

当你在Safari无痕窗口中发现已启用的广告拦截器、密码填充工具或语法检查插件完全不生效,甚至扩展开关变灰不可点,这不是插件被卸载了,而是macOS Sonoma及后续系统默认切断了无痕模式与扩展的连接通路——它从设计上就拒绝加载任何第三方代码。
无痕模式默认禁用所有扩展
Safari无痕浏览的核心机制是启动一个隔离的、零持久化上下文:不读取历史、不写入缓存、不调用任何已注册的扩展进程。即使你在「偏好设置→扩展」里把插件开关打开,该状态也仅作用于常规窗口。
打开Safari → 「偏好设置」→ 「扩展」→ 查看任意已启用插件右侧,你会发现「在无痕浏览中允许」开关默认处于关闭状态。
这个开关就是唯一控制入口,【不手动开启,无痕窗口永远看不到该扩展】。
手动启用无痕模式扩展访问权限
方法一:界面直接开启(适用于已安装且签名合规的插件)
① 打开Safari → 「偏好设置」→ 「扩展」;
② 在扩展列表中找到目标插件(如 1Password、uBlock Origin);
③ 点击插件右侧的「更多」按钮(ⓘ图标);
④ 勾选「在无痕浏览中允许」;
⑤ 关闭偏好设置,重启 Safari(必须重启,否则新权限不加载)。
方法二:命令行强制注册(仅限开发调试场景)
终端执行:defaults write com.apple.Safari AllowExtensionsInPrivateBrowsing -bool YES;
该命令会绕过GUI开关,全局开启无痕扩展支持,但【会导致所有已安装扩展无条件在无痕窗口运行,包括未验证签名的危险插件】,普通用户切勿使用。
为什么有些插件勾选后仍不工作?
不是设置没生效,而是插件本身不支持无痕环境。
Apple明确要求:只有声明支持 private_browsing 权限的扩展,才能在无痕模式下获得 DOM 访问权。旧版或自签名插件若未在 Info.plist 中配置 NSExtensionPointIdentifier = com.apple.Safari.web-extension 并添加 private_browsing capability,即使你勾选了开关,Safari内核也会在加载阶段直接跳过它。
验证方式:打开「访达」→ 右键 Safari.app → 「显示包内容」→ 进入 Contents → Extensions → 找到对应扩展文件夹 → 双击打开 Info.plist → 搜索 private_browsing。若无此项,该插件在无痕中必然失效。
WPS macOS Helper 提示:AdGuard、Grammarly 等主流插件已在 2026 年 7 月后版本中补全该能力,但部分小众脚本管理器(如旧版 Violentmonkey)仍未适配。











