JavaScript的Notification API是浏览器自带的一种消息推送机制,可以让网页向用户操作系统发送桌面通知。它常用于聊天提醒、订单状态更新或后台任务完成提示,即使用户当前没有聚焦在页面上也能收到提示。

检查浏览器支持与权限申请
在使用通知之前,首先要确认当前浏览器是否支持Notification,然后需要向用户申请发送通知的权限。权限状态分为granted、denied和default三种。
// 检查浏览器是否支持 Notification
if (!('Notification' in window)) {
console.log('当前浏览器不支持通知功能');
} else {
// 申请通知权限
Notification.requestPermission().then(function(permission) {
if (permission === 'granted') {
console.log('用户已允许通知');
} else {
console.log('用户拒绝或未完成授权');
}
});
}
创建并展示一条通知
当权限为granted时,就可以用Notification构造函数来创建通知。可以设置标题、内容主体、图标等选项。
// 假设权限已经为 granted
function showNotification() {
var options = {
body: '您有一条新的站内消息,请及时查看',
icon: 'https://ipipp.com/icon.png',
tag: 'msg-notify'
};
var n = new Notification('消息提醒', options);
// 点击通知时聚焦页面
n.onclick = function() {
window.focus();
n.close();
};
// 通知关闭事件
n.onclose = function() {
console.log('通知已关闭');
};
}
常用配置项说明
| 选项 | 类型 | 说明 |
|---|---|---|
| body | string | 通知的主内容文字 |
| icon | string | 通知左侧显示的图标地址 |
| tag | string | 通知标识,相同tag的新通知会替换旧的 |
| requireInteraction | boolean | 为true时通知不会自动消失 |
处理兼容与异常情况
部分旧版浏览器使用webkitNotifications前缀或仅支持回调式权限申请。在代码中应当做好降级提示。另外,Notification API要求在HTTPS或localhost环境下使用,普通HTTP远程地址会被浏览器拦截。
- 移动端部分浏览器对通知支持不完整,需真机测试
- 用户拒绝权限后不能再弹窗申请,只能引导去设置修改
- 避免频繁发送通知,否则会被系统静默丢弃
注意:文中提到的HTML标签如<input>仅作名称说明,Notification API本身不依赖这类表单标签,函数调用如Notification()是构造方法而非标签。
小结
通过Notification API,前端可以低成本实现类原生应用的消息推送。核心流程就是检测支持、申请权限、构造通知、绑定事件。只要遵循浏览器规范并照顾用户体验,就能让通知真正成为有用的功能而不是骚扰。
JavaScriptNotification_API浏览器通知修改时间:2026-07-26 09:36:18