safari默认启用原生弹窗拦截:macos在“设置→网站→弹出式窗口”中“访问其他网站时”默认为“阻止”,ios/ipados在“设置→safari→阻止弹出式窗口”开关默认开启,两者均不依赖扩展,是apple内置安全策略。

因为 Safari 浏览器将“阻止弹出式窗口”设为默认开启状态,这是 Apple 内置的安全策略,旨在防止广告、钓鱼页面和恶意脚本未经用户许可就打开新窗口或覆盖当前页面。
macOS 上查看并确认默认拦截状态
打开 Safari 浏览器 → 点击顶部菜单栏「Safari 浏览器」→「设置」→ 切换到「网站」标签页 → 在左侧列表底部点击「弹出式窗口」。
右侧「访问其他网站时」下拉菜单中显示的选项就是当前全局策略,默认值为【阻止】。这个设置不依赖任何扩展,是 Safari 原生行为。
若该下拉菜单显示“询问”或“允许”,说明你或他人曾手动修改过,已脱离 Apple 默认防护水位。
iOS/iPadOS 设备上验证系统级开关
进入「设置」→「Safari 浏览器」→ 查看「阻止弹出式窗口」开关是否处于开启(绿色)状态。
该开关默认开启,且影响所有通过 Safari 加载的网页,包括内嵌 WebView;关闭它会同时解除对广告弹窗、伪装系统警告、强制下载提示等所有类型弹窗的拦截。
为什么不能靠“临时点地址栏⚠️图标”来绕过默认拦截
第一步:在 Safari 中访问一个会触发弹窗的网站(如含在线客服按钮的电商页)。
第二步:若弹窗被拦,地址栏左侧会出现黄色⚠️图标;点击它 → 选择「允许弹出式窗口」。
第三步:该操作仅对当前域名本次会话有效,刷新页面或下次访问仍受全局规则约束;若未在「网站→弹出式窗口」列表中显式设为「允许」,则不会持久生效。
注意:有些网站使用动态子域名(如 chat-xyz123.support.example.com),即使你点了⚠️放行主站 example.com,子域名仍会被拦截——这是 Safari 的严格匹配机制,不是 bug。
哪些情况会导致默认拦截失效
方法一:已安装内容拦截扩展(如 AdGuard、1Blocker),但其规则集误将弹窗脚本识别为“必要功能”而放行。
方法二:网站使用 Universal Links 或自定义 URL Scheme(如 weixin://)唤起 App,这类行为不走弹窗拦截路径,而是由「允许打开链接」开关控制。
方法三:macOS 用户在「安全性」标签页中取消勾选「阻止弹出式窗口」,此选项与「网站→弹出式窗口」中的全局设置互为冗余,任一关闭都会导致默认拦截失效。











