2013-11-24 7 views
1

내가 내 background.js크롬 확장 일치

function changeActive(tabId, changeInfo, tab){ 
    console.log(tab); 
    chrome.pageAction.setPopup({ 
    "popup":"popup.html" 
    }); 
    chrome.pageAction.setIcon({ 
    "path":"Facebook-icon16.png" 
    }); 
    } 
chrome.tabs.onUpdated.addListener(changeActive); 

내 매니페스트이 코드가 일치하는 경우에만 확장이 활성화 만드는 것은이 있습니다

... "content_scripts": [ 
{ 
    "matches": ["https://www.facebook.com/*"], 
    "css": ["messenger.css"], 
    "js":["messenger.js"], 
    "run_at":"document_start" 
} 
], 
    "version": "0.2", 
"permissions": [ 
     "activeTab","tabs" 
     ] 
    } 

내가 URL을 경우 일치하는 것을 시도하고있다 볼 수 있듯이 페이 스북 (facebook)이며 아이콘 이미지를 변경하고 팝업을 표시합니다. 배경 -을 알리기 위해 좋은 생각 Message Passing을 활용하는 나는 또한 그들이 페이스 북 탭

+0

아래에서 제안한 솔루션을 사용해 보셨습니까? 작동 했나요? – gkalpak

+0

아니요. 곧 Google 크롬에 익숙해 지도록 소규모 프로젝트를 진행하고 있습니다. – EasyBB

답변

2

에없는 경우 이미있는 콘텐츠 스크립트를 사용하고 있기 때문에 아이콘을 클릭 할 수 싶지 않아 페이지에서 아이콘과 팝업을 변경해야합니다.
예컨대 :

messenger.js에서 :

chrome.runtime.sendMessage({ onFacebook: true }); 

background.js에서 :

또한
/* When the content scripts makes contact, 
* set the page-action's icon and popup */ 
chrome.runtime.onMessage.addListener(function(msg, sender) { 
    if (msg.onFacebook === true) { 
     chrome.pageAction.setIcon({ 
      tabId: sender.tab.id, 
      path: "path/to/active/icon.png" 
     }); 
     chrome.pageAction.setPopup({ 
      tabId: sender.tab.id, 
      popup: "path/to/popup.html" 
     }); 
    } 
}); 

/* When the tab's address changes/reloads, 
* clear the popup and reset the icon. 
* (If applicable, the newly injected content script will send a new message.) */ 
chrome.tabs.onUpdated.addListener(function(tabId, info, tab) { 
    if (info.status === "loading") { 
     chrome.pageAction.setIcon({ 
      tabId: tabId, 
      path: "path/to/inactive/icon.png." 
     }); 
     chrome.pageAction.setPopup({ 
      tabId: tabId, 
      popup: "" 
     }); 
    } 
}); 

, 참고 :

  • activeTab 사용 권한은 tabs 사용 권한의 하위 집합이므로 함께 사용하는 것은 의미가 없습니다. 당신이하지 않을 때 (chrome.pageAction.hide(...)chrome.pageAction.show(...) 사용) Facebook에 페이지 액션 아이콘을 숨긴 경우
  • 은 사용자에게 혼동을 줄일 수 있습니다.
+0

show hide 메서드를 사용했습니다. send.tab.id는 정의되지 않았으므로 tabId를 사용하지 않아야했습니다. 그것보다 완벽하게 감사했다. – EasyBB