2013-07-08 6 views
16

크롬 확장을 뒤범벅 한 후 나는 chrome://extensions 페이지에있을 때 매니페스트 파일에서 시작된 배경 스크립트가 마치 인터넷이나 다른 다른 페이지를 탐색하는 것처럼 실행되는 것으로 나타났습니다. 배경 스크립트가 실행되지 않는 확장 페이지.Google 크롬 확장 - 백그라운드 스크립트

내 매니페스트 파일에서

: 다음 background.js 파일에 이제

"background": { 
    "scripts": ["jquery-latest.js","background.js"] 
    }, 

:

$(document).ready(function(){ 
    alert("working"); 
}); 

내가 사용하는 경우 볼 수있는 간단한 알림 기능을 다음

무슨 뜻인지입니다 이게 작동하고 내가 chrome://extension에있을 때 alert("working"); 만 표시된다는 것을 알았습니다. 오라이. google.com 또는 그 종류의 무언가에 가면 시가가 없습니다.

제 질문은 무엇입니까? 왜 이런 일이 발생합니까? 나는 그것이 무엇이든 상관없이 어떻게 경고 할 수 있도록 그것을 어떻게 바꿀 것인가.

+2

설명 된 동작을 재현 할 수 없습니다. 확장 기능을 설치하거나 닫힌 상태에서 브라우저를 다시 실행하면 백그라운드 스크립트가 정확히 한 번 실행됩니다. chrome : // extensions 페이지를보고 있는지 여부는 아무런 차이가 없습니다. (확장 기능을 설치하는 데 필요한 것이지만 동작을 자극하는 것은 아닙니다.) – apsillers

+1

@apsillers'chrome : // extensions /'페이지 (Ctrl + R 또는 F5)를 새로 고침하면 모든 확장이 다시로드됩니다. 그것이 OP가 그가 묘사 한 행동을 관찰하는 이유 일 것입니다. –

+3

@RobW 아하, 그렇습니다. 페이지가 깔끔하게 보입니다. * 페이지가 동작을 재연합니다. 또한 이것은 매우 유용한 디버깅 바로 가기처럼 보입니다. 감사! – apsillers

답변

25

background script은 "Chrome 브라우저의 백그라운드에서 실행 중"으로 표시되어야합니다.
원하는 효과 (모든 페이지에 대해 스크립트 실행)는 실제로 content scripts의 작업입니다.

자세히 알아 보려면 https://developer.chrome.com/extensions/overview.html#arch을 읽어보십시오. 이벤트 페이지에 대한 자세한 내용이 확인을 위해

"background": { 
    "scripts": ["jquery-latest.js","background.js"], 
    "persistent": false 
    }, 

:

는 .. 봅니다이
+0

배경 스크립트가 아닌 콘텐츠 스크립트로 전환 하시겠습니까? –

+0

@DavidBiga 정확합니다. –

+0

그래도 문제가 발생하면 다음과 같이 사용하려고합니다. "content_scripts": [ { "js": [ "jquery-latest.js", "background.js"] } ] 일치 및 CSS를 제공해야합니까? –

1

chrome://extensions을로드 할 때마다 확장 프로그램이 강제로 다시로드되기 때문에 효과가 발생합니다. Ctrl + R을 사용하여 동일한 동작을 재현 할 수 있기 때문입니다. 따라서 매번 배경 페이지가 새로 고침되어 다른 페이지의 경우에는 발생하지 않습니다.

관련 문제