新增 api.closeLastNotification 方法

scripts
王良 7 months ago
parent 537eca72a1
commit eadc95c60f

@ -1,8 +1,8 @@
/** /**
* 篡改猴Tampermonkey| 油猴Greasemonkey浏览器脚本扩展 * 篡改猴Tampermonkey| 油猴Greasemonkey浏览器脚本扩展
* *
* @version 0.1.2 * @version 0.1.3
* @since 2024-04-24 14:54 * @since 2024-04-24 15:26
* @author 王良 * @author 王良
* @authorHomePage https://wangliang1024.cn * @authorHomePage https://wangliang1024.cn
* @remark 当前脚本为仿照的版本并非篡改猴插件的源码仅供学习参考 * @remark 当前脚本为仿照的版本并非篡改猴插件的源码仅供学习参考
@ -32,7 +32,7 @@
userMenusElement: null, // 用户菜单列表元素 userMenusElement: null, // 用户菜单列表元素
menus: {}, // 菜单集合 menus: {}, // 菜单集合
menuIndex: 0, // 菜单索引用于生成menuCmdId menuIndex: 0, // 菜单索引用于生成menuCmdId
lastNotification: null // 最后一次通知 lastNotification: null, // 最后一次通知
/* /*
{ {
obj: null, // 通知对象类型Notification obj: null, // 通知对象类型Notification
@ -46,6 +46,11 @@
// 创建插件API // 创建插件API
const api = {}; const api = {};
// 监听页面关闭事件,用于关闭对应的通知
window.addEventListener('beforeunload', function(event) {
api.closeLastNotification();
});
//region DS自定义的API start //region DS自定义的API start
@ -332,6 +337,20 @@
} }
}; };
// 关闭上一个通知
api.closeLastNotification = () => {
let lastNotification = context.lastNotification;
if (lastNotification) {
context.lastNotification = null;
lastNotification.timeout && clearTimeout(lastNotification.timeout);
try {
lastNotification.obj && lastNotification.obj.close();
} catch (e) {
console.error(`ds_tampermonkey_${version}: GM_notification: 关闭上一个通知失败:`, e);
}
}
};
//endregion DS自定义的API end //endregion DS自定义的API end
@ -484,16 +503,7 @@
// 显示通知方法 // 显示通知方法
const showNotification = () => { const showNotification = () => {
// 先关闭上一个通知 // 先关闭上一个通知
let lastNotification = context.lastNotification; api.closeLastNotification();
if (lastNotification) {
context.lastNotification = null;
lastNotification.timeout && clearTimeout(lastNotification.timeout);
try {
lastNotification.obj && lastNotification.obj.close();
} catch (e) {
console.error(`ds_tampermonkey_${version}: GM_notification: 关闭上一个通知失败:`, e);
}
}
// 获取标题和文本 // 获取标题和文本
let text = options.text; let text = options.text;
@ -516,7 +526,7 @@
// 创建通知 // 创建通知
const notification = new Notification(title, notificationOptions); const notification = new Notification(title, notificationOptions);
// 将通知对象保存到context中 // 将通知对象保存到context中
lastNotification = { const lastNotification = {
obj: notification, obj: notification,
options: options, options: options,
timeout: null timeout: null

Loading…
Cancel
Save