2014-12-22 7 views
1

크롬에서 확장 프로그램을 설치할 때 해당 확장 프로그램과 연결된 로컬 저장소를 지 웁니다. Firefox의 경우에는 그렇지 않습니다. 내가 찾을 수Firefox addon 제거 로컬 저장소 지우기 없음

유일한 해결 방안은

https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Listening_for_load_and_unload

가 '설치'이벤트를 수신하고 수동으로 취소하는 것입니다.

이 문제는 내가 main.js가이 이벤트를 얻는 순간 내 페이지 근로자가 이미 언로드되었음을 나타냅니다. main.js가 할 수없는 로컬 저장소를 지울 필요가 있습니다. 따라서 페이지 작업자에게 전송해야하므로 그렇게 할 수 있지만 현재 페이지 작업자는 이미 언로드되었습니다.

+0

재미 있습니다. 질문 있니? –

+0

이것이 최고의 솔루션입니까? 설치 제거 이벤트를 가로 채서 수동으로 수행하는 대신 Chrome과 같은 제거시 실제로 저장소를 지울 수있는 방법이 있습니까? – ThingWings

+0

맞아, 파이어 폭스는 사용자가 확장 프로그램을 재설치 할 때를 대비하여 파일을 보관한다. 내 부가 기능에 대해 Peronsally, 사용자가 그것을 제거하면, 나는 그것의 모든 흔적을 삭제합니다. 그것이 소프트웨어 제거가 나를 위해 작동 할 것이라고 기대하기 때문입니다. 그래서 그냥 addon의 제거에 대한 모든 것을 삭제하십시오 :) – Noitidart

답변

2

Firefox 부가 기능 SDK는 HTML5 로컬 저장소와 통합되지 않습니다. 그래서 한 가지 해결책은 메시지 전달과 simple storage을 사용하는 것입니다. 그러면 예상대로 닦아 주어야합니다. 그렇지 않은 경우

, main.js에서, 당신은 단순히 쓸 수 있습니다 : 당신이 localStorage를 사용하는 간단한 저장에 영향을받는 페이지의 배열을 저장해야하는 경우

const { storage } = require('sdk/simple-storage'); 
exports.main = function({ loadReason }) { 
    if (loadReason==='install') for (var prop in storage) delete storage[prop]; 
} 

은 다음 페이지 동료를 만들 설치시 각 사이트마다 localStorage 새 콘텐츠 스크립트에서 모두 지워야합니다.

+0

아마도'require ("sdk/simple-storage"). storage;'여기를 의미 할 것입니다. 어쨌든 작동하지 않습니다. – MadeOfAir