如何从选项页面启动和停止计时器

时间:2012-02-07 05:44:17

标签: javascript google-chrome-extension

现在我在我的后台页面中有这个1分钟计时器,它永远运行我希望能够从选项页面启动和停止它。

chrome.browserAction.setBadgeBackgroundColor({color:[0, 0, 0, 255]});

var i = 1;
window.setInterval(function(timer) {
chrome.browserAction.setBadgeText({text:String(i)});
i++;
}, 60000);

1 个答案:

答案 0 :(得分:2)

Window对象的

setInterval()方法调度以指定的毫秒数间隔重复调用的函数。 setInterval()返回一个不透明值,可以传递给clearInterval()以取消将来对调度函数的调用。详细了解How Javascript Timers work。有了它,你可以这样写:

My.Controller = {};

(function() {  
      var interval = 10;
      var timer = null;

  function init (param) {
    // initialisations if any   
  }

  // Override the default interval of 10 seconds by passing new interval 
  function startAction (param, tInterval) {
    // Set a timer
    var ti = (!tInterval) ? interval : tInterval;
    timer = setInterval(My.Controller.action, ti * 2000);    
  }

  function action () {
    // Logic here
  }

  function stopAction () { clearInterval(timer); }

  var c = My.Controller;
  c.init = init;
  c.startAction = startAction;
  c.stopAction = stopAction;
})(); // end Controller

现在您可以说My.Controller.startAction()启动计时器,然后My.Controller.stopAction()停止。

阅读并探索namespaces in JavaScript。 希望这会有所帮助。