4

新しいアドオン ビルダー プレビュー (https://builder.addons.mozilla.org/) でアドオンを作成しようとしていますが、10 分に 1 回程度実行する関数が必要です。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 は setInterval に置き換えられました。setTimeout 関数は、私が作成した同様の Web ページでうまく機能しました。関数自体を呼び出して無限ループを発生させました (ばかげているように聞こえますが、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

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

require不要な Jetpack SDK や追加機能を使用する必要はありません。Components.classesMozilla アドオン内の他の XPCOM インタラクションと同じように使用できます。

于 2014-04-05T14:10:06.860 に答える