ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

13_javascript:02_chrome:03_manifetst_v3

03 Chrome拡張機能 Manifest V3

Manifest V2が2023年以降は利用できなくなるので、エラーがでます。
その為Manifest V3へ対応方法

02 Chrome拡張機能2 をManifest V3に対応させてみる

manifest.json

browser_action→actionとbackgroundのscripts→service_workerなどが変わっています。

manifest.json

{
  "name": "クリックアラート2",
  "manifest_version": 3,
  "version": "1.1",
  "description": "クリックするとアラートを出すだけ2",
  "action": {
    "default_title": "EXTENTION_SAMPLE"
  },
  "background": {
      "service_worker": "background.js"
  },
  "content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["script.js"]
  }]
}

background.js

background.js

chrome.action.onClicked.addListener(function (tab){
	chrome.tabs.sendMessage(tab.id, "Action");
});

script.js

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  if (message == "Action") {
      hogehoge();
  }
  sendResponse();
  return true;
});

function hogehoge() {
  alert('AAAAA');
}

Error

Error1

これが、Manifest V2がサポート終了である旨のえらー

Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details.

Error2

Manifest V3以降後のmessageのresponse関連のエラー

このメッセージは、送られたmessegeがレスポンスを受け取って、返す前にmessageがcloseされてしまっているようです。

Uncaught (in promise) Error: The message port closed before a response was received.

対応

script.jsで、chrome.runtime.onMessage.addListener(async function (内の下記分を追加する事で、消えます。

sendResponse();
13_javascript/02_chrome/03_manifetst_v3.txt · 最終更新: 2022/04/02 10:39 by matsui