대상 페이지에 작은 스크립트를 배치하는 Chrome 확장 프로그램을 작성하려고 시도하고 페이지의 항목에 대해 특정 작업을 수행합니다. Chrome 확장 프로그램에 익숙하지 않아서 "Hello World"경고로 시작했습니다. 이 잘 작동하지만 내가 실제로 원하는 jquery 개체에 대해 사용하는 포함됩니다.jQuery를 추가하면 실행중인 스크립트가 중지됩니다.
내 대상 페이지가 이미 jQuery를 가져 오지만 내 스크립트에서 사용하려고하면 $가 정의되지 않는다는 예외가 발생합니다. 그러나 직접 가져 오려고하면 alert
도 작동하지 않습니다.
다음은 내 코드입니다. 어디에서 잘못 될지 지적 해 줄 수 있습니까?
manifest.json을
{
"manifest_version": 2,
"name": "Hello World",
"description": "Simple Hello World Extension",
"version": "1.0",
"content_scripts": [
{
"matches": ["http://localhost:46950/"],
"run_at": "document_end",
"js": ["http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", "popup.js"]
}
]
}
popup.js
$(helloWorld());
function helloWorld()
{
alert("Hello World");
}
업데이트 크롬으로 파고 : // 확장, 내가하려고 할 때 실현 아래 코드를 사용하면 확장 프로그램이 로딩되지 않습니다. d. 수동으로 다시로드하려고하면 다음 예외가 발생합니다.
'에서 확장명을로드 할 수 없습니다. 콘텐츠 스크립트에 자바 스크립트 ''을 (를)로드 할 수 없습니다.
자바 스크립트 함수는 당신이 그것을 호출하지 jQuery의 준비 핸들러에 함수를 전달해야, 첫 번째 순서입니다. '$ (helloWorld)'와 _not_'$ (helloWorld()) ' –
그러나'$'가 정의되지 않았기 때문에 그 특별한 문제는 발생하지 않았습니다. –
@BenjaminGruenbaum 그럴 것 같지 않습니다. '$ (helloWorld);를 사용하면 아무 일도 일어나지 않습니다 (정상적으로 작동하는 시나리오에서). '$ (helloWorld());를 추가하면 잘 동작합니다. –