2016-07-20 18 views
1

新しい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

+0

「externally_connectable」は、[* manifest.json *](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json)でサポートされているキーとしてリストされていません。リンクした答えは、同じ機能を達成するためのイベント駆動型の方法を提供します。 – Makyen

答えて

3

Web上のすべての利用可能なAPIと

関連する問題