2013-07-23 27 views
5

Chrome拡張機能を開発しました。Chrome拡張機能onSuspendは決して呼び出されません

イベントリスナーをchrome.runtime.onSuspendに追加しようとしましたが、決して呼び出されません。

私は次のコードを使用しますが、localStorageは変更されず、ログメッセージもコンソールにはありません(ログメッセージをファイルに保存するのに--enable-logging --v=1を使用します)。

chrome.runtime.onSuspend.addListener(function() { 
    localStorage["suspend"] = new Date(); 
    console.log("On suspend"); 
}); 

テストボックス:クローム28.0.1500.72 mの

とWinXPのSP3 x86の私は簡単にこの問題を再現するために、テストの拡張機能を作成しました:

manifest.json

{ 
    "manifest_version": 2, 

    "name": "Chrome onSuspend test", 
    "version": "1.0", 

    "background": { 
    "scripts": ["background.js"] } 
} 

background.js

chrome.runtime.onSuspend.addListener(function() { 
    localStorage["suspend"] = new Date(); 
    console.log("On suspend"); 
}); 

答えて

8

onSuspendイベントは、イベントページが非アクティブになった場合にのみトリガされます。

マニフェストファイルにpersistent: falseを宣言していないため、背景ページはevent pageではなくbackground pageです。その結果、ページは決して非アクティブにならず、onSuspendイベントは決してトリガーされません。あなたは

... 
    "background": { 
     "scripts": ["background.js"], 
     "persistent": false 
    } 
} 
+2

を使用して、イベントページであなたの背景ページを回したい場合

は、背景ページは、ブラウザを閉じる/拡張削除または拡張無効なイベントに不活性になるべきではないでしょうか。 – Anton

+3

これらのイベントはどのように処理できますか? – Anton

+0

@Antonできません。ブラウザが終了すると、すべての内線番号が予告なく終了します。 –

関連する問題