Chrome 확장 매니페스트 '일치'
간단한 Chrome Extension을 사용해 보려고 하는데, 이 기능을 위해 값을 제공하는 데 문제가 있습니다.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"]
}
}
이 확장을 Chrome에 로드하려고 하면 다음 메시지가 나타납니다.
'C:'에서 확장을 로드할 수 없습니다.\사용자\foo\데스크탑\내선번호\bar'
'content_scripts' 값이 잘못되었습니다.
하지만 제 가치의 "무효"가 무엇인지 알 수 없습니다.모든 URL을 대조하여 확장자가 (내 javascript를 통해) DOM을 조작할 수 있도록 하려고 합니다.scripts.js
)을 클릭합니다.내가 뭘 놓치고 있는 거야, 잘못 가고 있는 거야, 뭐야?
갱신하다
이 질문을 투고하고 나서 구글의 예가 제 예와 약간 다르다는 것을 깨달았습니다.그래서 구문을 반영하기 위해 코드를 조금 수정했습니다.
"content_scripts": [{
"matches": ["http://*"],
"js": ["scripts.js"]
}]
그러나 내선번호를 로드하려고 하면 여전히 다음 오류가 발생합니다.
'C:'에서 확장을 로드할 수 없습니다.\사용자\foo\데스크탑\내선번호\bar'
content_scripts[0].matches[0]' 값이 잘못되었습니다.
그 가치를 고려해야 합니다.content_scripts
각 괄호 안의 필드:
"content_scripts": [ {
"matches": ["http://*"],
"js": ["scripts.js"]
} ]
(자세한 내용은 Chrome Docs를 참조하십시오.)
덧붙여서, 사용법http://*/*
모든 URL(문서 참조), 추가https://*/*
그것들과도 일치해야 한다면요.
편집:
편집 후 발생하는 오류는 일치 패턴이 잘못되었기 때문입니다.
모든 URL을 일치시키고 싶다면 Google은 이 목적을 위해 특별한 패턴을 가지고 있습니다.<all_urls>
사용 예:
"matches": ["<all_urls>"],
상세한 것에 대하여는, 다음의 페이지를 참조해 주세요.https://developer.chrome.com/extensions/match_patterns
모든 일치 패턴은 [Scheme]://[host][path] 구조여야 합니다.
- scheme는 '*' | 'scheme' | 'scheme' | 'file' | 'scheme' 입니다.
- 호스트는 " | " 입니다. (/' 및 '*'를 제외한 모든 문자)+
- 경로는 '/'(임의 문자)입니다.
HTTP/S 및 FILE URL을 일치시키려면 다음을 사용합니다.
"matches": [
"*://*/*",
"file://*/*"
],
참고 자료: https://developer.chrome.com/apps/match_patterns
참고로 로컬 파일에 대한 액세스를 허용하려면 다음 권한을 추가합니다.
"permissions": [
"file://*/*"
]
또는 확장자 설정 페이지에서 파일 액세스를 승인합니다.
다음과 같은 오류가 발생하는 대부분의 경우:
'content_scripts[0].matches' is missing or invalid.
또는
'content_scripts[0].matches[0]': Empty path.
필요한 특정 URL을 사용하여 matches 필드를 입력 또는 작성합니다.모든 URL을 사용하려면<all_urls>
하다
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": [ "jquery.js" ]
}
]
js 배열에 나열된 파일에는 앱에 대한 경로가 있습니다.즉, "manifest.json"의 위치가 루트 디렉토리입니다.
주의: jquery.js는 프로젝트 디렉토리에 있는 파일입니다.필요한 스크립트파일로 치환해 주세요.
작업 후 여러 번 시도하면 모든 URL과 일치하며 여기에 http 및 https.enter 코드도 지원합니다.
"manifest_version": 2,
"content_scripts": [
{
"matches": [
"*://*/*",
]
}
CDN에서 Jquery를 사용하는 경우 Jquery를 다운로드하여 작업 폴더에 포함시킨 다음 가져오기를 시도합니다.
덧붙이는 것을 잊었군요.
"syslog_version" : 2
필수 사항이죠.
언급URL : https://stackoverflow.com/questions/2769525/chrome-extension-manifest-matches
'programing' 카테고리의 다른 글
ui.bootstrap.datepicker가 열려 있고 모드에서 작동하지 않음 (0) | 2023.03.07 |
---|---|
rest API에 여러 매개 변수 전달 - Spring (0) | 2023.03.07 |
this.refs.something이 "syslog"를 반환합니다. (0) | 2023.03.07 |
스프링 부트 테스트에서 TestRestTemplate 및 MockMvc를 삽입할 수 없습니다. (0) | 2023.03.07 |
monthnum 대신 monthname을 사용하여 permalink를 작성하는 방법 (0) | 2023.03.07 |