📄

Chrome拡張機能にテキストファイルを埋め込む方法

2024/10/01に公開

解法

Chrome拡張機能にテキストファイルを埋め込んで利用するには、以下の手順を実行します:

  1. マニフェストファイル(manifest.json)を作成し、テキストファイルをリソースとして宣言する
  2. テキストファイル(例:data.txt)を作成し、必要な文字列を記述する
  3. JavaScriptファイル(background.js)でテキストファイルを読み込む処理を実装する
  4. 作成したファイルを拡張機能としてパッケージ化する

解説

マニフェストファイル(Manifest V3)

{
  "manifest_version": 3,
  "name": "My Text File Extension",
  "version": "1.0",
  "description": "An extension that uses embedded text files",
  "permissions": [
    "activeTab"
  ],
  "web_accessible_resources": [{
    "resources": ["data.txt"],
    "matches": ["<all_urls>"]
  }],
  "background": {
    "service_worker": "background.js"
  },
  "action": {
    "default_icon": {
      "16": "icon16.png",
      "48": "icon48.png",
      "128": "icon128.png"
    }
  }
}

バックグラウンドスクリプト(background.js)

function loadTextFile() {
  return fetch(chrome.runtime.getURL('data.txt'))
    .then(response => response.text())
    .catch(error => {
      console.error('Error loading text file:', error);
    });
}

chrome.action.onClicked.addListener((tab) => {
  loadTextFile().then(text => {
    console.log('Loaded text:', text);
    // ここでテキストを利用する処理を行う
    chrome.tabs.sendMessage(tab.id, {text: text});
  });
});

補足情報

  • Manifest V3では、バックグラウンドスクリプトがService Workerとして動作します。
  • web_accessible_resourcesの記述方法が変更されているため、注意が必要です。
  • テキストファイルの内容を更新する場合は、data.txtを編集し、拡張機能を再読み込みするだけで反映されます。
  • コンテンツスクリプトを使用する場合は、manifest.jsonにcontent_scriptsセクションを追加し、別途content.jsファイルを作成して実装します。

この方法を使用することで、Chrome拡張機能内でテキストファイルを効果的に埋め込み、利用することができます。

Discussion