2010-05-04 6 views
28

간단한 Chrome 확장 프로그램을 사용하고 있지만 matches 배열 값을 제공하는 문제가 발생하여 content_scripts에 있습니다. 크롬 확장 매니페스트 '일치'

{ 
    "name": "My Extension", 
    "version": "1.0", 
    "description": "My Extension Experiment", 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_title": "Ext", 
    "default_popup": "popup.html" 
    }, 
    "content_scripts": { 
    "matches": ["http://*"], 
    "js": ["scripts.js"] 
    } 
} 

내가 크롬에이 확장을로드하려고

, 나는 다음과 같은 메시지가 얻을 : ': \ 사용자 \ foo는 바탕 화면 \ 확장 \ 표시 줄 \ C'

부터 확장을로드 할 수 없습니다입니다.
'content_scripts'값이 잘못되었습니다.

나는 내 가치에 대해 "무효"한 것을 볼 수 없습니다. 내가하려는 것은 모든 URL과 일치하므로 내 확장 프로그램은 실행되는 페이지의 DOM을 (scripts.js 내의 javascript를 통해) 조작 할 수 있습니다. 내가 뭔가를 놓치고,이 모든 잘못에 대해, 또는 무엇?

"content_scripts": [{ 
    "matches": ["http://*"], 
    "js": ["scripts.js"] 
}] 

존재한다 : 자신의 구문을 반영하기 위해 약간의 갱신

이 질문을 게시 한 후, 나는 구글의 예는 나보다 약간 다른 것을 통보했다, 그래서 난 내 코드를 수정 내 확장 프로그램을로드하려고 할 때 다음 오류가 계속 발생합니다.

'C : \ Users \ foo \ Desktop \ Ex에서 확장을로드 할 수 없습니다. 긴장 \ bar '.
'content_scripts [0] .matches [0]'의 값이 잘못되었습니다. 모두를위한 더 나은 경기를 할 것 http://*/*를 사용하여, 덧붙여

"content_scripts": [ { 
    "matches": ["http://*"], 
    "js": ["scripts.js"] 
} ] 

(자세한 정보에 대한 Chrome Docs 참조)

:

+0

동일한 오류가 발생했지만 '일치'키를 쓰지 않았습니다. 어디서'content_scripts'를 생성 할 때 크롬 개발자 문서를 볼 수 있습니까? – diEcho

답변

45

당신은 대괄호로 content_scripts 필드의 값을 묶어야합니다 URL (docs 참조)에 일치하는 URL이 있다면 https://*/*을 추가하십시오.

편집

: 편집 한 다음

, 당신은 점점 오류 때문에 잘못되는 경기 패턴이다.

+0

'http : // */*'패턴을 보았습니다.하지만'url에'/' 내 확장 프로그램을 실행하려면 'http : //'를 입력하십시오. 이것은 틀린가? – Aristotle

+0

패턴 일치에 대한 docs 페이지 (http://code.google.com/chrome/extensions/match_patterns.html)에 자세히 설명되어 있습니다. 내가 본 모든 확장 기능은 문제없이 'http : // */*'패턴을 사용합니다. – adrianbanks

+0

예. 제 질문을하기 전에이 페이지를 잠깐 보았습니다. 그러나 그들의 예제는'http : // */*'와'http : // www.google.com /'이 일치하는 것으로 보여서'http : //와 연결된 URL 뒤에 슬래시가 있어야한다는 것을 알게되었습니다. '내 확장 논리를 호출합니다. – Aristotle

34

당신이 모든 URL과 일치 할 경우, 구글은 이러한 목적을위한 특별한 패턴이 있습니다 <all_urls>

샘플 사용 : https://developer.chrome.com/extensions/match_patterns

+2

매우 멋지다. 나는 그것에 대해 알지 못했다. 관련 문서를 찾는 사람들을 위해 링크는 실제로 다음과 같습니다. http://code.google.com/chrome/extensions/match_patterns.html – npdoty

+2

code.google.com에 대한 모든 링크와 선택한 답변 및이 링크 앞에있는 모든 주석 사이트 재편성 후 깨졌습니다. 나는 선택한 링크를 작동 링크로 고정시켰다. – ack

2
:

"matches": ["<all_urls>"], 

더 많은 정보를 원하시면이 페이지를 참조하십시오를

많은 사람들이 다음과 같은 오류가 발생합니다.

'content_scripts[0].matches' is missing or invalid. 

또는

'content_scripts[0].matches[0]': Empty path. 

시도에서 작성 또는 필요한 특정 URL과 일치하는 필드를 생성. 모든 URL을 사용하려면 다음과 같이 <all_urls> 태그를 사용하십시오.

"content_scripts": [ 
     { 
      "matches": ["<all_urls>"], 
      "js": [ "jquery.js" ] 
     } 
    ] 

"js"배열에 나열된 파일의 경로는 내 앱과 관련이 있습니다. 즉, "manifest.json"의 위치가 루트 디렉토리입니다.

참고 : jquery.js는 내 프로젝트 디렉토리에있는 파일이므로 원하는 스크립트 파일로 바꾸어야합니다.