2017-01-02 4 views
2

저는 URL 목록에 콘텐츠 스크립트를 삽입하고 싶은 크롬 확장 프로그램을 만들고 있습니다. 보통 일반 구문을 사용합니다.외부 배열을 사용하여 콘텐츠 스크립트 삽입을위한 URL을 일치시킬 수 있습니까?

{ 
    "name": "My extension", 
    ... 
    "content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*"], 
     "css": ["mystyles.css"], 
     "js": ["jquery.js", "myscript.js"] 
    } 
    ], 
    ... 
} 

그러나 일치 패턴의 경우 서버에서 배열을 가져오고 싶습니다. 프로그래밍 방식으로 "matches"배열을 background.js 파일에서 설정하는 방법이 있습니까?

+0

당신은 배열을 만들고 AJAX를 사용하여 채울 수 있습니다. 그런 다음 'matches'속성에서 해당 배열 이름을 사용합니까? –

+0

좋아요, AJAX 호출은 어디에서 실행합니까? –

+0

가지고있는 모든 기능을 보여줄 수 있습니까? 문자열 배열과 동일한 JS 파일에 URL 목록을 생성하여 사용할 수 있습니다. 이것을 시도 할 필요가있다. –

답변

1

내가 아는 한, 내선 번호 내에서 manifest.json 파일을 수정할 수 없습니다. 탭의 URL이 서버에서 가져온 URL 중 하나와 일치 할 때 프로그래밍 방식으로 배경 스크립트에서 콘텐츠 스크립트를 삽입 할 수 있습니다.

tabs<all_urls> 권한이 필요합니다.

background.js

var list_of_URLs; //you populate this array using AJAX, for instance. 

populate_list_of_URLs(); 

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){ 
    if (list_of_URLs.indexOf(tab.url) != -1){ 
     chrome.tabs.executeScript(tabId,{file:"jquery.js"},function(){ 
      chrome.tabs.executeScript(tabId,{file:"myscript.js"}); 
     }); 
    } 
});