4

そのため、具体的に chrome.* または browser.* の使用について言及しているものは見つかりませんでした。一部の WebExtension の例では browser.* ( browser.runtime.getManifest();) https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/getManifestを使用し、他の例では chrome.* ( chrome.notifications.create)を使用しています。 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/notifications .

何が違うのか完全にはわかりません。それは文脈上のものですか?chrome.* と browser.* の両方が、私のコンテンツ スクリプトと Firefox のバックグラウンド スクリプトで利用できます。私はIEのドキュメントも見ましたが、彼らはブラウザを使用しています。

Chrome拡張機能はchrome.*のみを使用しますか、それともbrowser.*も備えていますか(IEにはbrowser.*のみがありますか)?

4

3 に答える 3

8

Chrome には chrome.apis しかありません。Edge には browser.apis しかありません。Firefox には、既存の Chrome 拡張機能との互換性のために、browser.apis と chrome.apis の両方があります。

主な違いは、Firefox では browser.apis が promise を使用するのに対し、chrome.apis はコールバックを使用することです。

于 2016-11-24T02:45:28.203 に答える
0

2021年現在

https://github.com/mozilla/webextension-polyfill
(または TypeScript の対応するhttps://github.com/Lusito/webextension-polyfill-ts )を確認
して、Chrome と Firefox 間の互換性を向上させてください。

于 2021-07-29T08:07:42.487 に答える
0

今のところあなたの最善の解決策は、クロム、ファイアフォックス、エッジで機能するため、プロミスの代わりにコールバックを使用することだと思います。さらに browser = browser || chrome;、クロムとブラウザの問題を解決したりbrowser.runtime.lastError;、エラー処理を行うために、次のようなものを使用できます。Firefox は API の callback と promise バージョンの両方をサポートします。コールバック バージョンは、chrome オブジェクトと browser オブジェクトの両方で機能します。

于 2017-01-26T08:22:22.933 に答える