2

Chrome 확장 프로그램에 대해 배우고 안녕하세요! 세계 앱을 만들고 있습니다. 나는 여기에 내용 스크립트 작업을하고있다.내 URL이 아닌 http 사이트에서 컨텐츠 스크립트가 실행되도록 변경하면 컨텐츠 스크립트가 개발자 도구에 표시되는 이유는 무엇입니까?

첫째, 내 앱은 매우 간단합니다. 콘텐츠 스크립트를로드하는 매니페스트 일뿐입니다.

이 매니페스트

{ 
    "name": "turn all th into TH", 
    "version": "1.0", 
    "permissions": [ 
    "http://*/*" 
    ], 
    "manifest_version": 2, 

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

하고 contentscript는 한 줄을

경고 ('안녕하세요')이다;

이제 이것을 실행하면 경고 상자가 페이지가로드 될 때마다 나타납니다.

그러나 이상한 것은 코드가 실행 중이지만 개발자 도구에서 ContentScript를 찾을 수 없다는 것입니다.

내 매니페스트에 약간의 조정을 한 경우에만 matches 매개 변수를 변경하여 허용하지 않고 개발자 도구에서 콘텐츠 스크립트를 볼 수있는 아래의 http 파일과 일치시킵니다.

{ 
    "name": "turn all th into TH", 
    "version": "1.0", 
    "permissions": [ 
    "http://*/*" 
    ], 
    "manifest_version": 2, 

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

왜 이렇게 궁금한가요? 두 경우 모두 코드가 실행 중이고 경고 상자가 표시되지만 콘텐츠 스크립트 페이지의 "matches"매개 변수가 개발자 도구에 표시되기 시작한 http 페이지로 설정된 경우에만 발생합니다.

답변

1

이것은 처음으로 확장 프로그램을로드 할 때 자주 볼 수있는 우연과 결함입니다.

"<all_urls>" 매니페스트를 사용할 때 개발자 도구의 탭 소스에서 contentScriptFirstApp.js이 올바르게 표시됩니다. 콘텐츠 스크립트 컨텍스트로 전환 할 수 있습니다.

그러나 때로는 때 처음처음 탭의 개발 도구가 항상 표시되지 않는, 디스크에서 확장을 설치하는 것으로 보인다. I and others이 문제를 보았지만 필요시 문제를 재현 할 수있는 확실한 방법을 찾지 못했습니다.

원인이 무엇이든 그 탭을 닫고 새 탭을 열면 항상 수정됩니다 (지금까지). 그래서 어쩌면 당신이 확장자 이 우연히이 개발 도구에 출현했다는 것을 명심하십시오. 내가 말했듯이 matches 설정에 관계없이 매니페스트 작업과 확장이 나에게 나타납니다.

+0

ur 오른쪽, 심지어는 http 일이 더 이상 작동하지 않습니다. 변경 사항이 아니라 크롬 개발자 도구가 버그가있는 것처럼 보입니다. 첫 번째 탭을 닫고 새 탭을 열면 문제가 해결되는 것 같지 않습니다. ( – Diskdrive

+0

크롬을 다시 시작하고 실행중인 모든 작업이있을 수 있습니다. 코드에서 오류가 발생할 수 있습니까? –

+0

닫았습니다. 내가 한 테스트 확장 중 다른 하나는 지금 작동하고있는 것처럼 보입니다. 나는 다시 한번 그것이 우연의 일치라고 생각합니다. 확장은 또 다른 단순한 것입니다. – Diskdrive