4

我正在尝试使用新的插件构建器预览(https://builder.addons.mozilla.org/)创建一个插件,并且我需要一个大约每 10 分钟运行一次的函数。我已经尝试过 setInterval 和 setTimeout,但它们都返回以下错误:

    error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid0-31njasqk3btmpa6paroepuybjn4-myaddon-lib/main.js", line 41, in 
    setTimeout(function() { timedCount(); }, 10000);
ReferenceError: setTimeout is not defined

(当我尝试使用 setTimeout 时,setTimeout 被替换为 setInterval。setTimeout 函数在我构建的类似网页中运行良好。我只是让函数调用本身来提供无限循环(听起来很愚蠢,应该有一个 while 循环,但是它在一个教程中;)但现在我无法在我的插件中克服这个错误。

另外,如果你能帮我解析这个插件中的本地或远程页面(最好是远程的,但我可以让它在 localhost 上解析 django 创建的页面),或者更好,告诉我如何使用 python ;)会很好。

谢谢!

4

3 回答 3

9

请注意,以上内容已弃用

var tmr = require('sdk/timers');

现在改为使用

于 2014-01-29T21:52:28.930 回答
5

使用定时器模块

var tmr = require('timer');
tmr.setInterval(timedCount, 10000); // no need for an anon function since you don't pass any arguments to your function nor capture anything in a closure
于 2011-03-09T15:53:47.420 回答
2

使用nsITimerhttps ://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsITimer

它不需要您使用不必要的 Jetpack SDK,以及额外的require功能;您可以Components.classes像在 Mozilla 插件中使用其他 XPCOM 交互一样使用它。

于 2014-04-05T14:10:06.860 回答