2017-12-29 63 views
0

chrome.storage.local.set 및 .get을 사용하는 Chrome에서 작동하는 확장 프로그램이 있습니다. 저장 코드를 Firefox로 이식하는 방법과 관련하여 WebExtensions API 문서를 이해하는 데 문제가 있습니다.브라우저 간 저장 확장 저장소 : chrome.storage 또는 browser.storage 또는?

from the WebExtensions API doc으로 표시된 샘플 코드 중 일부는 browser.storage.local.set 및 .get을 사용하지만 Chrome에서 실행되는 확장 프로그램에서이 행을 사용하면 '브라우저가 정의되지 않음'을 반환합니다. WebExtensions API 포팅 문서 here은 chrome.storage.local.set 및 .get이 Firefox 및 Safari에서 작동해야한다고 제안하지만 잘못 읽은 것일 수 있습니다.

아직 Firefox 확장 프로그램에서 chrome.storage.set 및 .get을 시도하지 않았습니다. 그들은 단지 일해야합니까?

+2

'chrome'은 FF에서는 작동하지만 Edge에서는 작동하지 않습니다. Safari의 경우 WebExtensions를 전혀 지원하지 않습니다. – wOxxOm

답변

-1

chrome.storage.setchrome.storage.get은 Firefox 확장 프로그램에서 작동하지만 storage API를 사용하는 것이 좋습니다. 그것은 약속의 기반 API의 크롬 https://github.com/mdn/webextensions-examples/blob/master/navigation-stats/popup.js#L26

의 차이 : 여기

는 사용의 예입니다.

Safari의 경우 settings API를 볼 수 있습니다.

또한 BG 페이지 또는 콘텐츠 스크립트에 항상 cookies 또는 localStorage을 사용할 수 있습니다.

+0

에 대한 두 가지 질문 : 1) 연결된 저장소 API가 '더 좋음'/ '약속 기반'API 란 무엇입니까? 2) 예제에서는 Chrome에서 작동하지 않는 "browser.storage.local.set/.get"코드를 사용합니다. 그 이유는 어딘가에서 '브라우저'를 정의해야하기 때문입니까? –

+0

1) 현재 Firefox는'chrome'과'browser' 네임 스페이스를 지원하지만 (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities), 미래에는' 크롬 '을 지원하고'브라우저 '만 남겼습니다. 위의 링크에서 약속 기반 API와 콜백 간의 차이점을 확인할 수도 있습니다. [여기] (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension)에서 Chrome 확장을 Firefox로 이식하는 방법에 대한 자세한 정보를 얻을 수 있습니다. 2) 불행히도 'browser' 네임 스페이스는 Chrome에서 지원되지 않습니다. 따라서 '크롬'만 사용해야합니다. –