在过去,开发人员在 iframe 中使用 notification.requestPermission 方法来向用户请求权限。 但是,此方法已被弃用,因此需要找到一种新的方法来解决此问题。
现在,我们可以使用 postMessage 方法在 iframe 和父页面之间传递消息,以获取关于是否授权的信息。
以下是一个简单的示例,展示了如何在这种情况下使用 postMessage 方法:
在 iframe 页面中,用以下代码向父页面发送消息:
function requestPermission() {
Notification.requestPermission().then(function(permission) {
parent.postMessage(permission, 'https://parentpage.com');
});
}
在父页面中,使用以下代码来监听消息并处理它:
window.addEventListener('message', function(event) {
if (event.origin !== 'https://iframepage.com') return;
if (event.data === 'granted') {
// 用户授权了通知
} else if (event.data === 'denied') {
// 用户拒绝了通知
}
});
通过这种方法,我们可以在 iframe 中使用通知,而不需要使用不推荐的 notification.requestpermission 方法。