コンテンツ スクリプトの再挿入: Chrome 拡張機能のアップグレードまたはインストール後に必要な手順
P粉066224086
P粉066224086 2023-08-24 12:03:01
0
2
472

開発中の Chrome 拡張機能をインストールまたはアップグレードした後、コンテンツ スクリプト (マニフェストで指定されている) が再挿入されないため、拡張機能が適切に動作するにはページを更新する必要があります。スクリプトを強制的に再挿入する方法はありますか?

プログラムでマニフェストから削除し、ページを処理してバックグラウンド ページに挿入すれば、再度挿入できると思いますが、それは良い解決策ではありません。

データが失われる可能性があるため、ユーザーのタブを自動的に更新したくありません。 Safari は、拡張機能がインストールまたはアップグレードされると、すべてのページを自動的に更新します。

P粉066224086
P粉066224086

全員に返信 (2)
P粉807239416

ページを更新せずにコンテンツ スクリプトを強制的に挿入する唯一の方法は、プログラムによる挿入です。

Chrome の Tag API を使用して、すべてのタグを取得し、そこにコードを挿入できます。 たとえば、バージョン番号をローカル ストレージに保存し、バックグラウンド ページのバージョン番号が古いかどうかを確認するたびに (古い場合は)、すべてのアクティブなタグを取得してプログラムなどでコードを挿入できます。拡張機能が確実に更新されるようにするためのソリューション。

すべてのタグを取得するには、次のコードを使用します:


chrome.tabs.query

そしてコードをすべてのページに挿入します


chrome.tabs.executeScript(tabId, {file: "content_script.js"});

いいねを押す+0
    P粉158473780

    コンテンツのスクリプトを多用する拡張機能がアップグレード後も適切に動作し続け、インストール直後に有効になるようにする方法があります。

    インストール/アップグレード

    これをインストールする方法は、すべてのウィンドウのすべてのタブをループし、一致する URL を持つタブにプログラムでスクリプトを挿入するだけです。

    マニフェストV3

    マニフェスト.json:

    リーリー

    これらの host_permissions は、コンテンツ スクリプトのmatchesと同じである必要があります。

    背景.js:

    リーリー

    これはフレームを扱わない単純化された例です。getAllFramesAPI を使用して、URL を自分で照合することができます。マッチング パターンのドキュメントを参照してください。

    マニフェストV2

    明らかに、これは、manifest.json で宣言されたバックグラウンド ページまたはイベント ページスクリプトで行う必要があります。 リーリー

    背景.js:

    リーリー

    歴史上の面白い事実

    古い Chrome 26 以前では、コンテンツ スクリプトがバックグラウンド スクリプトへの接続を復元できました。これは 2013

    http://crbug.com/168263で修正されました。この手法の例は、この回答の以前のバージョンで見ることができます。

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!