3

新しい Chrome 拡張 API では、「バックグラウンド ページ」が「イベント ページ」に置き換えられました。このページは、拡張機能のインストール時に 1 つだけ読み込まれ、一部のイベントで chrome によって呼び出されるコールバックを登録する必要があります。

コードを毎秒実行する「イベント ページ」を作成したいと考えています。「manifest.json」で拡張機能を作成しました。

{
  "manifest_version" : 2,
  "name" : "myextension",
  "version" : "1.0.0",
  "background" : { "scripts" : [ "background.js" ], "persistent" : false }
}

および「background.js」:

function onTimer()
{
  console.log( "on timer" );
}

function onStartup()
{
  console.log( "on startup" );
  window.setInterval( onTimer, 1000 );
}

console.log( "script load" );
chrome.runtime.onStartup.addListener( onStartup );

拡張機能をインストールした後、開発者ツールのコンソールに「スクリプトの読み込み」が表示されますが、「起動時」と「タイマー」は表示されません:(。ブラウザを閉じて再度開いた後、「スクリプトの読み込み」も表示されません(その私は何が間違っていますか?

4

1 に答える 1

3

Google イベント ページ APIから:

拡張機能で window.setTimeout() または window.setInterval() を使用している場合は、代わりにアラーム API の使用に切り替えてください。イベント ページがシャットダウンされた場合、DOM ベースのタイマーは適用されません。

イベント ページが setInterval() 関数を破棄しているようです。

于 2014-02-14T07:15:46.113 に答える