我正在尝试使用新的插件构建器预览(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函数在我构建的类似网页中运行得很好。我只是让函数调用本身给出一个无限循环(听起来很愚蠢,应该有一段时间)循环,但它是在教程;) 但现在我无法在我的插件中超越该错误。
另外,如果你可以帮助我解析这个插件中的本地或远程页面(最好是远程,但我可以让它解析在localhost上创建一个django创建的页面),或者甚至更好,只需告诉我如何使用python ;)那将是伟大的。
谢谢!
答案 0 :(得分:9)
请注意,以上内容已弃用
var tmr = require('sdk/timers');
现在使用代替
答案 1 :(得分:5)
使用timer module:
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
答案 2 :(得分:2)
使用nsITimer
:https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsITimer
它并不要求您使用不必要的Jetpack SDK和额外的require
功能;您可以像使用Mozilla插件中的其他XPCOM交互一样使用Components.classes
。