单击时chrome.notifications.create()给出了错误的id

时间:2014-06-12 09:57:24

标签: javascript google-chrome google-chrome-extension settimeout

首先发布在这里。这是我一直面临的一个关于个人项目的问题。我曾经在这里找到一个类似的话题,但我再也找不到了,AFAIR的问题没有得到回答 我必须承认我的头衔有点奇怪,但我找不到更好的解释方法。无论如何我们走吧。

我有这个功能:
(网址和时间得到适当的授予,这不是问题)

function setTimer(url, time) {
    var timeHR = time / 1000 / 60;
    idTimerString = saveTimer(url, timeHR);
    console.log(idTimerString);
    setTimeout(function() {
        var options = {
            type: "basic",
            title: "Remind me later !",
            message: ('You asked me to remind you :\n' + url + ' \n' + timeHR + ' minutes ago. Click to open it !'),
            iconUrl: 'img/icon.png'
        }
        chrome.notifications.create(idTimerString, options, function(cb) {
            console.log(cb);
        });
    }, time);

}

当此功能被称为一次时没有问题,延迟后它会正确显示。如果我创建一个30m(id = 1)的调用和另一个juste之后的60m(id = 2),当我点击第一个通知时,我将收到id 2和第二个通知相同。
但我应该有id 1然后id 2!你知道为什么吗?

我的扩展程序已在线,您想测试该错误,但我认为它会被视为广告。

1 个答案:

答案 0 :(得分:1)

这很可能是一个封闭范围问题。尝试将idTimerString置于函数

的本地
var idTimerString = saveTimer(url, timeHR);