2012-11-20 113 views
0

我想創建一個擴展程序,其中:從點擊鉻上的按鈕它將啓動一個彈出窗口,並從該彈出窗口中,我想從中獲取信息最初的標籤集中在我按下按鈕的時間。Chrome擴展程序:創建彈出窗口後訪問初始選項卡

function onClick(tab) { 
    var originalTab = tab, 
     popupTab; 
    chrome.windows.create(
     { 
      url: chrome.extension.getURL('popup.html'), 
      type: 'popup' 
     }, 
     function (w) { 
      w.getCurrent({populate: true}, function (win) { 
       var popupTab = win.tabs[0]; 
       popupTab.insertCSS(null, {code: 'body {background:red;}'}); 
       //look now I have access to the original and popup tabs!!! 
      }); 
     } 
    ); 
} 

chrome.browserAction.onClicked.addListener(onClick); 

通過使用以下腳本,沒有真正發生。

點擊按鈕後,當我創建另一個窗口,當窗口創建時,我得到第一個可用的選項卡。 在這種情況下,我可以訪問originalTab和popupTab實例,但不幸的是,這不是發生的事情。

是否有特殊原因不能按預期工作?

在此先感謝

回答

0

我不知道有什麼具體你的代碼錯誤,但我這樣做是另一種方式。

Popup在清單中指定。這通常可能並不重要,但如果事件處理程序應該做的唯一事情是打開彈出窗口,似乎是一個比較可取的方法。情況就是這樣。

對於彈出onload事件有一個與有些類似的處理程序:

function onLoad() 
{ 
    chrome.windows.getCurrent(
    function(win) 
    { 
    chrome.tabs.query({'windowId': win.id, 'active': true}, 
    function(tabArray) 
    { 
     // tabArray[0] - is the initially selected tab, so you may do... 
     chrome.tabs.insertCSS(tabArray[0].id, {code: 'body {background:red;}'}); 
    } 
    } 
} 
相關問題