Pertanyaan Bagaimana saya bisa menambahkan timer berulang ke addon Firefox?


Saya mencoba membuat addon dengan pratinjau pembangun addons baru (https://builder.addons.mozilla.org/), dan saya memerlukan fungsi untuk berjalan sekitar sekali setiap 10 menit. Saya telah mencoba setInterval dan setTimeout, tetapi keduanya mengembalikan kesalahan berikut:

    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

(dengan setTimeout digantikan dengan setInterval ketika saya mencobanya. Fungsi setTimeout bekerja sangat baik di halaman web yang sama yang saya bangun. Saya hanya memiliki fungsi memanggil dirinya sendiri untuk memberikan loop tak terbatas (Kedengarannya bodoh, harus ada loop sementara, tetapi itu dalam tutorial;) Tapi sekarang saya tidak bisa melewati kesalahan itu di addon saya.

Juga, jika Anda dapat membantu saya mengurai halaman lokal atau jauh di addon ini (sebaiknya jauh, tapi saya bisa membuatnya menguraikan halaman yang dibuat django di localhost), atau bahkan lebih baik, beri tahu saya cara menggunakan python;) akan menjadi hebat.

Terima kasih!


4
2018-03-09 15:29


asal


Jawaban:


Menggunakan modul pengatur waktu:

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

5
2018-03-09 15:53



harap dicatat bahwa hal di atas sudah ditinggalkan

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

sekarang digunakan sebagai gantinya


9
2018-01-29 21:52



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

Itu tidak mengharuskan Anda untuk menggunakan SDK Jetpack yang tidak perlu, dan ekstra require fungsi; Kamu dapat memakai Components.classes seperti yang Anda lakukan untuk interaksi XPCOM lainnya dalam addons Mozilla.


2
2018-04-05 14:10