3

데모 데이터를 자동으로 채우기 위해 Chrome 확장 프로그램을 작업 중입니다. 데이터를 자동으로 채우기 위해 JavaScript 파일 "xyz.js"을 만들었습니다. 그래서 버튼을 클릭하여 스크립트를 실행하고 있습니다. chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"}); 그리고 필요한 출력을 얻고 있습니다.Chrome 확장 프로그램의 콘텐츠 스크립트 및 백그라운드 스크립트는 무엇이 있습니까?

콘텐츠 스크립트 나 배경 스크립트를 사용하고 있지 않습니다. 콘텐츠 스크립트 나 배경 스크립트를 사용하면 어떤 이점이 있습니까?

+1

'chrome.tabs.executeScript (tabs [0] .id, {file : "xyz.js "});'당신이 * 콘텐츠 스크립트를 사용하고 있다는 것을 의미합니다 : * xyz.js *. 또한'chrome.tabs.executeScript()'에 대한 호출은 백그라운드 컨텍스트에서 실행되고 있지만 아마도 (추측에 의해) 팝업 내에서 실행되고 있습니다. – Makyen

+1

[Chrome 확장 개요] (https://developer.chrome.com/extensions/overview) (그리고 개요에서 링크 된 페이지와 함께)를 읽는 것이 좋습니다. [아키텍처 섹션] (https://developer.chrome.com/extensions/overview#arch)에는 전반적인 아키텍처 정보가 포함되어있어 전반적인 아키텍처 정보를 제공하므로 전반적인 아키텍처 정보를 통해 전반적인 아키텍처 정보를 얻을 수 있습니다. 또한 [Content Scripts] (https://developer.chrome.com/extensions/content_scripts) 및 [Message Passing] (https://developer.chrome.com/extensions/messaging)을 읽는 것이 좋습니다. – Makyen

답변

6

우선 콘텐츠 파일을 사용하는 실제로입니다. 여기서 이벤트를 통해 컨텐츠 스크립트의 실행을 제어하는 ​​것입니다.

배경 스크립트는 하나의 백그라운드에서 실행하고 사용자가 크롬 브라우저와 상호 작용하면서

동안 콘텐츠 스크립트 (예 : 탭에서 클릭 이벤트를 수신으로) 트리거를 수신 뭔가입니다입니다 실제로 웹 페이지 (기본적으로 DOM 요소)와 상호 작용합니다. 이제

, 매니페스트에서 그들을 포함 당신의 방법의 차이는 그들이 매니페스트에 포함 된 경우, 컨텐츠 스크립트가 자동 -합니다 (이 경우) 따라서 페이지가로드되면 바로로드 것입니다 chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"});은 특정 트리거 이벤트가 발생할 때 콘텐츠 스크립트를로드하므로 (이 경우) 버튼 클릭과 같은 트리거의 데이터를 자동으로 채 웁니다.

Here은 모두 콘텐츠 스크립트를 삽입하는 방법입니다.

+0

이제 manifest.json에 콘텐츠 스크립트를 포함 시키면 페이지가 새로 고쳐진 직후 콘텐츠 스크립트를로드 할 수 있다는 것을 알고 있습니다. 매니페스트에 콘텐츠 스크립트를 보관하고 싶지만 버튼을 클릭 할 때만 트리거하고 싶다면 어떻게해야합니까? –

+0

@ParagBandewar이 경우 함수 내부에서 코드를 이동하고 버튼을 클릭하면 호출됩니다. –

+0

https://stackoverflow.com/questions/44909642/how-to-get-background-script-to-call-function-in-content-script-for-chrome-exten에 대한 아이디어 – SuperUberDuper

2

실제로 Chrome 확장 프로그램에서 스크립트를 실행하는 것은 콘텐츠 스크립트를 사용하는 또 다른 방법입니다. 콘텐츠 스크립트는 확장의 매니페스트에 정의 될 수도 있습니다.

곧 콘텐츠 스크립트는 확장 API의 작은 부분에 액세스 할 수 있으며 페이지의 DOM에서 완전히 작업 할 수 있습니다. 이들은 매니페스트에 정의 된 경우 자동으로 탐색 할 때 페이지에로드되거나 사용중인 API를 사용하여 삽입 할 수 있지만 최종 결과는 동일합니다.

배경 스크립트는 페이지의 DOM에 액세스 할 수 없지만 확장 프로그램의 API에 대한 모든 액세스 권한을 제공합니다.

확장 프로그램의 상태를 저장하는 배경 스크립트는 브라우저가 닫힐 때까지 계속 유지되므로 확장 프로그램의 상태를 저장합니다.

크롬 확장 아키텍처에 대한 자세한 내용은 여기에서 콘텐츠 및 배경 스크립트에 대한 정보를 찾을 수 있습니다. https://developer.chrome.com/extensions/overview

1

background.js 파일과 콘텐츠 스크립트있는의 주요 목적은 확장의 성능을 증가시키는 것이다.

클릭했을 때 무언가를 표시하는 확장 프로그램이 있다고 가정하면 바보처럼 취급 될 수 있습니다. 주요 기능은 background.js와 다른 콘텐츠 스크립트 안에 기록 할 수 있으며,이 스크립트는 우리가 바보로 만든 뷰를 채 웁니다.background.js을 갖는 단순한 의미에서

는 장소에콘텐츠 스크립트 효율성을 개선하고 그 Google 확장 개발자가 제안하는 것이다. 마지막으로, 실행중인 파일 자체가 웹 페이지와 상호 작용할 때 컨텐츠 스크립트입니다. manifest.json 파일의 content scripts 섹션 아래에 파일 항목이 있기를 바랍니다.