新しいAPI WebExtensionを使用してChrome拡張機能をFirefoxに変換しようとしています。externally_connectableとFirefox WebExtensions
Webページでchrome.runtime.sendMessage()を使用する以外はすべて正常に動作します。目標はアドオンと通信してデータを渡すことです。そのために
ここに書かれたように、私は "externally_connectable" プロパティを使用しています:can-a-site-invoke-a-browser-extension
background.js Webページ
chrome.runtime.sendMessage(EXTENSION_ID, {type: 'show', data: 'test'}, function(response) {
if (response.success && !response.success) {
console.log(response.message);
}
}で
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
sendResponse({
success: true,
message: 'ok'
});
return true; // Bug chrome, close channel otherwise
});
)。
クロムでは、通信は正常に機能しますが、Firefoxではウェブページで実行されるコードが機能しません。「クロムは定義されていません」。
「chrome」の代わりに使用する別のvarがありますか、実装されていませんか?
私は、Web :(おかげで "ブラウザ" の名前空間
browser.runtime.sendMessage(...)
Mozillaの開発 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs
「externally_connectable」は、[* manifest.json *](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json)でサポートされているキーとしてリストされていません。リンクした答えは、同じ機能を達成するためのイベント駆動型の方法を提供します。 – Makyen