2

私はすべてを試しましたが、何もうまくいかないようです。以下のコードのようにウィンドウのクローズを検出してブラウジングのクローズを検出しようとしましたが、うまくいきません。Chrome の終了を検出する別の解決策はありますか?

chrome.windows.onRemoved.addListener(function(windowId){
  alert("Browser exit!");
});
4

3 に答える 3

2

あなたの一般的な問題は、ブラウザーを終了すると、ブラウザーがまだ終了しているかどうかを確認するスクリプトを実行できなくなることです。これは、人に死んだかどうかを尋ねようとするようなものです。 「いいえ」になります。

backgroundあなたが試すかもしれない1つの解決策は、パーミッションを持つ長時間実行されるバックグラウンドページです:

Chrome の起動を早め、シャットダウンを遅らせることで、アプリや拡張機能の寿命を延ばします。

インストールされているホスト型アプリ、パッケージ化されたアプリ、または拡張機能に「バックグラウンド」権限がある場合、ユーザーがコンピューターにログインするとすぐに、ユーザーが Chrome を起動する前に、Chrome が (目に見えない形で) 実行されます。また、「バックグラウンド」権限により、ユーザーが明示的に Chrome を終了するまで、Chrome は (最後のウィンドウが閉じられた後でも) 実行され続けます。

この権限により、すべてのブラウザ ウィンドウが閉じられた後でも、Chrome は拡張機能を実行し続けることができます。通常、Chrome はウィンドウが開いている場合にのみ処理を実行できるため、すべてのウィンドウが閉じられたことを Chrome が検出できないという問題が発生します (上記で説明したとおり)。バックグラウンドのアクセス許可により、Chrome はすべてのウィンドウが閉じられた場合でも拡張コードを実行する機能を保持します。

于 2013-02-18T02:56:21.413 に答える
0

拡張機能がブラウザ全体ではなく終了したときに、制御を取得しようとしています。私の拡張機能はテキスト ボックスのみを使用するため、その onblur プロパティを関数に設定し、そこに終了コードを配置します。おそらくあなたが探しているものではありませんが、私にとってはうまくいきます!

Chrome 開発者の Web サイトでは、「メモリやその他のリソースを消費する」ため、バックグラウンド ページを使用しないことを推奨しています。

拡張機能の終了を制御するためのより一貫した方法が役立つことに同意します。それ以外の場合は dom と統合されているように見える html ページです。

于 2013-02-25T19:41:25.597 に答える
0

chrome は、chrome ブラウザが閉じようとしていることを検出するための API を提供していません。ただし、Chrome 拡張機能を使用すると、バックグラウンド ページ内で Chrome ブラウザのオープニング イベントを検出できます。

background.js

    chrome.runtime.onStartup.addListener(function () {
        console.log("extension started: " + Date.now());
    });

このイベントは、Chrome ブラウザが起動したときに発生します。次に、任意のトリックを使用して、Chrome ブラウザーが終了したことを識別できます。

于 2016-12-15T13:01:10.683 に答える