2011-03-15 5 views
5

매 10 분마다 background.html을 계속 업데이트해야하며 팝업을 클릭하면 배경이 즉시 업데이트되고 팝업에 결과가 표시되어야합니다.크롬 확장 팝업 및 배경 아약스

나는 백그라운드에서 아약스를 사용하여 업데이트하고 배경을 팝업으로 트리거하여 아약스를 사용하여 즉각적인 업데이트를 수행하도록했다. 그러나, 어떻게 팝업에 최신 결과를 표시하는 방법에 붙어 오전 ... 배경 아약스 전화가 완료되면 팝업에서 최신 결과를 표시 할 수 있습니까? 당신이 배경 페이지의 변경을 수신 할 경우

감사

답변

13

글쎄, 당신은 당신이 원하는 것을 할 수있는 두 가지 방법이있다. 당신의 팝업에서

  1. , 당신은 당신이 chrome.extension.sendRequest 당신이 물건 업데이트 얻을 수있을 때 당신의 팝업 페이지에서 chrome.extension.onRequest.addListener를 등록하고 배경 페이지에서 할 수 있습니다.
  2. 팝업 DOM에 직접 액세스 할 수 있고 chrome.extension.getViews({type:'popup'})에서 인스턴스를 가져올 수 있습니다. 인스턴스를 얻으면 해당 DOM에서 메소드를 호출 할 수 있습니다. 팝업에서 chrome.extension.getBackgroundPage()으로 배경 페이지에 쉽게 액세스 할 수 있습니다. 두 경우 모두 DOMWindow가 반환됩니다.

동일한 확장 프로세스에 속해 있기 때문에 개인적으로 # 2를 사용하므로 삽입 된 콘텐츠 스크립트와 통신 할 필요가 없습니다.

var popups = chrome.extension.getViews({type: "popup"}); 
if (popups.length != 0) { 
    var popup = popups[0]; 
    popup.doSomething(); 
} 

희망이 도움이됩니다.

+0

chrome.extension.getViews ([ 'popup'])하고 싶습니다만, 배열에 오류가 발생합니다 ... – khan

+0

잘못된 값 : 인수 1의 값이 잘못되었습니다. 'object'가 필요하지만 ' 정렬'. – khan

+0

항상 코드를 작성하지 않은 설명서를 읽어야합니다. http://code.google.com/chrome/extensions/extension.html#method-getViews 일부 코드로 답변을 업데이트했습니다. –