2011-11-11 3 views
2

Google 크롬에서 현재 선택한 탭을 식별 할 수있는 확장 프로그램을 만들려고합니다. chrome.tabs.onSelectionChanged 메서드를 사용하여이 작업을 수행했지만, 창을 전환하면이 작업이 시작되지 않습니다. chrome.windows.onFocusChanged를 사용하여 윈도우가 변경 될 때이를 감지하고 chrome.tabs.getSelected 메소드를 사용할 계획입니다. 그러나 문제는 chrome.windows.onFocusChanged가 두 번 이상 해고 된 것 같습니다. 실수가 아니라면 창 -1을 반환 한 다음 첫 번째 창 (일반적으로 1)을 생성 한 다음 현재 창을 반환합니다. 첫 번째 창이 선택되면 -1, 그 다음에 1입니다.크롬 확장 - Chrome.windows.onFocusChanged 동작

여기 올바른 방법을 사용하고 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까? 만약 내가 그것을 지키면 나는 조금 어수선한 창 변화를 추적해야 할 수도 있습니다.

+0

폴, 정보 주셔서 감사합니다! '수정 됨'섹션을 답변으로 이동하고 시스템에서 자동으로 수락 해 주시겠습니까? 매우 감사! – cxw

+1

좋은 아이디어 @cxw. 완료 및 감사합니다! – Paul

답변

1

Kinda는 이에 대한 나만의 솔루션을 개발했습니다. 비슷하게하는 것에 관심이있는 어떤 사람이라면, 대신에 onFocusChanged를 사용하여 윈도우 변경이 일어나서 requestListener가 시작된다는 것을 알았습니다. 내용 스크립트를 사용하여 초점이 이미 해당 창에 있음을 나타내는 window.focus 이벤트가있을 때마다 확장 프로그램에 요청을 보냈습니다. 그런 다음 requestlistener는 자체를 제거합니다. 불행하게도이 접근법은 모든 탭이 포커스를 얻을 때마다 요청을 보내도록 요구합니다. 내가 생각하기에 좀 더 조정할 시간이 있지만, 초점이 바뀔 때마다 요청을 보내면 많은 자원을 먹는 것처럼 보이지 않기에 충분한 시간이라고 생각합니다.