크롬

2013-09-05 2 views
2

그래서 나는 탭에서 수신 배경 페이지크롬

var tabHandler={ 


    onTabUpdate:function(tabId, changeInfo, tab){ 


    }, 
    tabChanged:function(activeInfo) { 
     function tabChanged(tab){ 

     var parser = document.createElement('a');//To extract the hostname, we create dom element 
     parser.href = tab.url; 

     var regex=/^(www\.)?([^\.]+)/ 
     var matches=regex.exec(parser.hostname)//This gives us the hostname, we extract the website name 
     var website=matches[2]; 
     var data=getDataForWebsite(website);//Data is a json array 
      //TRANSFER 'data' to Browser popup so that it can be displayed. 
     } 

     chrome.tabs.get(activeInfo.tabId,tabChanged); 
    }, 

    init:function(){ 
     chrome.tabs.onActivated.addListener(this.tabChanged); 

    } 



} 

tabHandler.init(); 

이 코드 조각이 웹 사이트의 남를 얻을 수를 변경하고 기반으로 매개 변수의 목록을 가져 오는 한 브라우저 작업에 배경 페이지에서 데이터를 전송 웹 사이트. 이제 데이터가 생겼으므로이 데이터를 브라우저 조치 팝업에 표시하는 방법에 대해 궁금합니다. 이 데이터를 브라우저 Action Adn에 전달한 다음 기존 콘텐츠를 바꿉니다. 어떻게해야합니까?

답변

4

기억해야 할 것은 팝업이 닫히는 동안 (배경 페이지와 달리) 팝업 페이지가 작동하지 않는다는 것입니다. 이는 언제 어디서나 존재하지 않기 때문에 데이터를 팝업 페이지로 전송할 수 없다는 것을 의미합니다. 대신 팝업이 열릴 때마다 먼저 저장소에서 정보를 요청하고 원하는대로 표시해야합니다. 현재 도메인에 대한 데이터를 수신 할 때 배경 페이지에서

, 당신은 어딘가에 저장해야합니다 : 그 sessionStorage, 또는 chrome.storage (하나는 더 많은 의미를 것이다 볼 수있는 문서를 확인 localStorage에, 또는 수 귀하 유스 케이스). 도메인에 인덱싱 된 것을 저장하고 필요할 경우 모든 열린 탭에서 정보를 저장할 수 있습니다.

팝업이 열리면 사용했던 저장소에서 현재 탭의 데이터를 가져 와서 원하는 방식으로 데이터를 표시하십시오.

+0

하지만 팝업 **이 아직 열리면 어떻게 될까요? 그러면 어떻게 메시지를 전달합니까? – Pacerier

+0

확장 프로그램 내에서 일반 메시지 전달을 사용하면됩니다 (https://developer.chrome.com/extensions/messaging). –