问题描述
我在其他两个地方使用了相同的Notification,但它工作正常,为什么单击上下文菜单时为什么不触发?我尝试过.then-ing在browser.storage.sync.set(...之后,我也尝试过将它从browser.storage.onChanged ...方法中触发。为什么这个createNotification()方法起作用在弹出窗口和选项文件中,但不在后台脚本中?
let contextMenuItem = {
id: "spendMoney",title: "SpendMoney",contexts: ["selection"]
}
browser.contextMenus.create(contextMenuItem)
const isInt = function (value) {
return !isNaN(value) &&
parseInt(Number(value)) == value &&
!isNaN(parseInt(value,10));
}
browser.contextMenus.onClicked.addListener((clickData,tab) => {
if (clickData.menuItemId == "spendMoney" && clickData.selectionText) {
if (isInt(clickData.selectionText)) {
browser.storage.sync.get(['total','limit'],function (budget) {
let newTotal = 0;
if (budget.total) {
newTotal += parseInt(budget.total);
}
newTotal += parseInt(clickData.selectionText);
browser.storage.sync.set({
'total': newTotal
})
})
}
}
})
browser.storage.onChanged.addListener(function(changes,storageName) {
browser.browserAction.setBadgeText({
"text":changes.total.newValue.toString()
});
})
let count = 0;
function createNotification(amount,newTotal,budget) {
if (amount && newTotal >= budget.limit) {
let notifOptions = {
type: 'basic',title: 'limit reached!',message: `Oops... Looks like you've exceeded your limit! `
};
browser.notifications.create('limitNotif' + count,notifOptions)
count += 1;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)