0

나는 모든 탭에서 열린 웹 페이지의 URL을 저장하고 필요할 때마다로드하는 크롬 확장 프로그램을 개발하려고합니다. 이제는 콘텐츠 스크립트, 백그라운드 스크립트 및 popup.js를 알고 있습니다. 콘텐츠 스크립트는 주로로드 된 웹 페이지의 컨텐츠를 처리하며 크롬 API의 상호 작용이 적고 백그라운드 스크립트가 격리 된 환경에서 실행되며 모든 Chrome API 메소드를 사용할 수 있습니다. popup.js는 popup.html의 컨텍스트에서 실행되는 javascript입니다. .배경 스크립트 대 콘텐츠 스크립트

내 문제는 여기에 "저장"이라는 popup.html의 버튼이 있으며 버튼 하나를 클릭하면 하나의 창 아래에 여러 탭에서 열린 모든 웹 페이지 URL을 저장하려고합니다. 어떻게해야합니까? 콘텐츠 또는 배경 스크립트를 작성해야합니까?

내 noobish 질문에 사과드립니다. 나는 크롬 API에 처음이다. 도움이나 제안이 있으십니까?

+1

가능한 중복 (http://stackoverflow.com/questions/11114395/get-urls-of-all-open-tabs-in-chrome-and-send-it-to-a-web-service) – Ghostship

+0

@Ghostship 아니 실제로. 완전한 질문을 읽으십시오. 나는 제목이 같다는 것을 안다. 나는 그것을 바꿔 말할 것이다. –

+0

먼저 메시징 및 팝업과 백그라운드 간 통신 방법에 대한 설명서를 읽으십시오. 다른 질문은 이미 해당 통신 부분에 응답합니다. upvote에 친구를 사귀지 말아라. 그것은 나 같은 중재자로부터 더 많은 관심을 받는다. –

답변

2

콘텐츠 스크립트 나 배경 페이지가 필요하지 않습니다. 팝업 페이지는 실제로 확장자가있는 동일한 컨텍스트에서 실행되기 때문에 popup.js에서이를 수행 할 수 있습니다. 당신의 popup.js에서

, 단지 URL을 포함 탭 정보를 얻을 수 chrome.tabs.query 전화 (당신은 manifest.jsontabs 권한을 선언해야합니다). 당신이 윈도우 ID를 지정하거나 WINDOW_ID_CURRENT를 사용하거나 다른 방법을 통해 그것을 검색 할 경우 (당신의 논리에 따라 다름)

chrome.tabs.query({ windowId: YOUR_WINDOW_ID }, (tabs) => { 
    tabs.forEach((tab) => console.log(tab.url)); 
}); 
[크롬에 열려있는 모든 탭의 URL을 가져 오기를 웹 서비스로 보내]의