【发布时间】:2019-12-22 17:39:09
【问题描述】:
我想拦截HTML5 Web Notifications。我已阅读以下answer,其中用户建议可以用您自己的对象覆盖window.Notification 对象,该对象将充当代理。我试图这样做,但无法让它发挥作用。下面是我在页面加载时注入的 JavaScript 代码:
function setNotificationCallback(callback) {
const OldNotify = window.Notification;
OldNotify.requestPermission();
const newNotify = (title, opt) => {
callback(title, opt);
return new OldNotify(title, opt);
};
newNotify.requestPermission = OldNotify.requestPermission.bind(OldNotify);
Object.defineProperty(newNotify, 'permission', {
get: () => {
return OldNotify.permission;
}
});
window.Notification = newNotify;
}
function notifyCallback(title, opt) {
console.log("title", title); // this never gets called
}
window.Notification.requestPermission(function (permission) {
if (permission === "granted") {
setNotificationCallback(notifyCallback);
}
})
【问题讨论】:
标签: javascript html web browser web-notifications