10

次の Chrome 拡張機能を検討してください。

マニフェスト.json

{
    "name": "Test onStartup",
    "version": "0.0.0",
    "manifest_version": 2,
    "background": {
        "persistent": false,
        "scripts": ["eventPage.js"]
    },
    "permissions": ["storage"]
}

eventPage.js

chrome.runtime.onStartup.addListener(function() { 
    console.log("I started up!");
    chrome.storage.local.set({"startedUp": true});
});

chrome.runtime.onStartup「この拡張機能がインストールされたプロファイルが最初に起動したとき」に起動すると文書化されており、拡張機能のリロード時にも起動すると思われます。ただし、ブラウザを再起動するか、拡張機能をリロードすると、コンソールに console.logメッセージが表示されず、結果も得られないため、リスナーが呼び出されなかったと思われます。_generated_background_page.htmlchrome.storage.local.get("startedUp", function(v) { console.log(v) })

このイベントがいつトリガーされるか、間違ってバインドされるか、またはそのようなものを誤解していますか? Linux 上の Chrome 28.0.1500.71 の問題ですか?

4

3 に答える 3

12

Chrome を閉じると、バックグラウンド プロセスが実行され続けます。chromeクロムを再起動する前に、as または類似の名前のプロセスをすべて強制終了してください。

于 2013-07-13T04:17:01.500 に答える
2

後から考えると明らかなこのイベントについて注意してください。非同期コールバックの後に登録すると、 eventListener は起動されません。コールバックの外で、初期ロード中に登録する必要があります。

私の場合、コールバックを必要とする設定の検証後に呼び出された「メイン」メソッドの一部として登録していたため、起動されませんでした。

于 2016-10-23T10:32:33.283 に答える