[javascript] 크롬 확장 프로그램에 정보를 로컬로 저장하려면 어떻게해야합니까?

크롬 확장 프로그램이 일부 정보를 저장하고 싶은데 코드를 시작하는 방법을 잘 모르겠습니다. 문자열을 저장하려면이 프로그램이 필요합니다. 예를 들어-사용자가 문자열 (팝업 위의 텍스트 영역)을 입력하면이 문자열이 팝업에 표시됩니다. 사용자가 종료하고 반환하면 문자열이 동일하게 유지되기를 원합니다. (저는 그것을 저장해야한다고 믿습니다) 저는 그것을 제 서버 나 그와 비슷한 것에 저장하고 싶지 않습니다. 사용자 캐시 등에 저장하고 싶습니다.



답변

이제 Google Chrome의 storageAPI를 활용 하여이 작업도 수행 할 수 있습니다. 와 달리 localStorage콘텐츠 스크립트에서도 액세스 할 수 있습니다.

//  Somewhere in your manifest...

{
    "permissions": [
        "storage"
    ]
}

//  Usage:

//  PERSISTENT Storage - Globally
//  Save data to storage across their browsers...

chrome.storage.sync.set({ "yourBody": "myBody" }, function(){
    //  A data saved callback omg so fancy
});

chrome.storage.sync.get(/* String or Array */["yourBody"], function(items){
    //  items = [ { "yourBody": "myBody" } ]
});

//  LOCAL Storage

// Save data to storage locally, in just this browser...

chrome.storage.local.set({ "phasersTo": "awesome" }, function(){
    //  Data's been saved boys and girls, go on home
});

chrome.storage.local.get(/* String or Array */["phasersTo"], function(items){
    //  items = [ { "phasersTo": "awesome" } ]
});

이러한 헛소리가 작동하는 방식에 대한 자세한 내용은 https://developer.chrome.com/extensions/storage#type-StorageArea를 참조하세요.

이전 답변 :

localStorage를 사용하십시오 . Google 크롬은 HTML5의 일부 기능을 구현하며 그중 하나입니다.

//Pull text from user inputbox
var data = document.getElementById("this_input").value;
//Save it to the localStorage variable which will always remember what you store in it
localStorage["inputText"] = data;

백그라운드 페이지 (컨텐츠 스크립트 없음)에서만 스토리지에 액세스 할 수 있으므로이를 위해 메시징을 사용해야합니다.


답변

이제 특정 API가 있습니다. https://developer.chrome.com/extensions/storage 에서 확인하십시오.

백그라운드 페이지에서만 사용할 수 있으며 격리 된 세계에서 작동합니다 (웹 사이트의 HTML5 localStorage에 포함 된 값에 액세스하지 않음).


답변