获取ReferenceError:未定义setInterval

时间:2014-11-02 20:07:00

标签: javascript firefox firefox-addon firefox-addon-sdk

我正在尝试在使用firefox附加组件sdk开发的扩展中使用setInterval()。不幸的是,无论我如何调用setInterval(),我都会得到没有定义setInterval的ReferenceError。

我简化了我的代码来说明问题。以下代码导致此错误:

var globalTimer = 0;

function setGlobalTimer() {
    globalTimer = setInterval(testFunction, 15000);
    //globalTimer = setInterval(function() { testFunction(); }, 15000);
}

function testFunction() {
    console.log("testFunction just called");    
}

var { ToggleButton } = require("sdk/ui/button/toggle");
var button = ToggleButton({
    id: "my-button",
    label: "my button",
    icon: {
      "16": "./icon-16.png",
      "32": "./icon-32.png",
      "64": "./icon-64.png"      
    },
    onClick: handleClick
});


function handleClick(state) {
    testFunction();
    setGlobalTimer();
}

在setGlobalTimer()中设置全局变量 globalTimer 的两种方式,一种方式被注释掉,当我在Firefox中单击我的切换按钮时会导致以下错误:

ReferenceError:未定义setInterval

我已经扫描了stackoverflow网站,以了解有关setInterval()无法正常工作的问题,而在其他情况下,使用我正在使用的调用已经有效。但是这段代码为我生成了上述错误。

如果有人能帮我解决这个问题,我将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:2)

setInterval目前不是加载sdk的全局。

你需要它,就像这样var { setInterval } = require("sdk/timers")