0

私は現在、サーバー側の XML ファイルを定期的に (2 分ごとに) チェックする Firefox 拡張機能を開発しています。次の機能を追加したい:

ユーザーが X 分間アクティブでない場合は常に、Z の制限に達するまで、チェック間隔が Y 倍に延長されます。そのためには、無活動時間が必要です。この値 (またはそれに似たもの) は、Firefox によって内部的に既に生成されていますか? もしそうなら: どうすれば自分の拡張機能からアクセスできますか? そうでない場合: 自分で生成する方法はありますか?

4

3 に答える 3

2

browser.xul をオーバーレイする場合、個々のページをいじるのではなく、ブラウザー レベルでイベントにフックできるはずです。XPCOM にはIdle Serviceがあり、拡張機能からアクセスできるはずです。

于 2009-08-27T23:07:54.180 に答える
0

ブラウザのウィンドウ/タブでユーザーが非アクティブであることを確認することしかできません。これは、javascriptを使用して実現できます。

onbody load-> timeをlastactivitytimeに保存します()

オンマウスの動き->時間を保存するlastactivitytime(document.onmousemove)

キーを押すと->時間を保存するlastactivitytime(document.onkeypress)

間隔が切れるたびに、値と現在の時刻を確認してください。

ウィンドウがアクティブでない場合は、終止符のポーリングを停止しますonblurイベント

于 2009-08-27T11:48:57.430 に答える
0

ユーザーが別のウィンドウでアクティブになっているかどうかはわかりません。それでよろしければ、開いているすべてのページの本文に、mousemove、keydown、mousescroll (?) などのイベントのリスナーをアタッチし、内部 FF 手段によってタブの作成または終了をリッスンする必要があります。このリスナーの一部が X 分間トリガーされない場合は、非アクティブです。

于 2009-08-27T11:51:47.020 に答える