2013-04-30 3 views
0

첫 번째 Chrome 확장 프로그램을 개발 중입니다. CSV 파일을 JSON으로 저장하고 내용을 읽고 URL과 비교하려고합니다.로컬에 저장된 JSON 검색 Chrome 확장자

질문 :

  1. 나는 일반적으로 데이터베이스에 CSV 테이블을 저장하는 것입니다,하지만 난 자바 스크립트 작업이 옵션이 없습니다. 제 경우에 더 좋은 선택을합니까?
  2. main.js (콘텐츠 스크립트) 및 script.js이 있습니다. 콘텐츠 스크립트는 사용자의 URL을 읽기 위해 두 번째 스크립트를 호출합니다 (콘텐츠 스크립트가 직접 할 수없는 것 같습니다). 그런 다음 JSON 파일을 읽어야합니다. script.js에서 나는

    load: function() { 
        var list; 
        var xhr = new XMLHttpRequest(); 
        xhr.onreadystatechange = function() { 
         list = JSON.parse(xhr.responseText); 
        } 
        xhr.open("GET", chrome.extension.getURL('resources/list.json'), true); 
        xhr.send(); 
        return list; 
    } 
    

을하지만 "Cannot call method 'getURL' of undefined"가 발생합니다. 이 load() 함수를 main.js에 삽입하고 list을 사용하여 localStorage을 저장 한 다음 마지막으로 script.js 내부에서 읽으려고했지만 ... 정보가 저장되지 않습니다. 내가 뭘 잘못하고있어?

+0

[크롬 확장에 저장된 저작물로드] (http://stackoverflow.com/questions/3720258/loading-an-asset-stored-within-a-chrome-extension) 중복 가능 – Jonathan

답변

1

이것은 advertised limitation of Content Scripts입니다. 콘텐츠 스크립트는 DOM 페이지 내의 샌드 박스에 있습니다. 확장 프로그램에 의해 삽입되었지만 거의 확장 기능을 공유하지 않습니다.

단일 비동기 요청/응답이 필요하거나 반복 사용을 위해 chrome.runtime.connect을 사용하려면 chrome.runtime.sendMessage을 사용하는 것이 좋습니다.

이것은 자신의 앱에서 이벤트를 의지하여 코드 분리를 돕는 데 도움이됩니다.

관련 문제