2011-12-15 14 views
0

マニフェストファイルから読み込んだときに動作するページアクションポップアップがあります。しかし、私はポップアップを起動するためにクリックされたタブのタブ情報を取得したい。 chrome.pageAction.onClicked.addListenerからタブ情報を取得できますが、pageAction.onClickedからpopup.htmlを起動する方法がわかりません。chrome.pageAction.onClicked.addListenerからpopup.htmlをロード

答えて

1

あなたが持っているcannot両方pageAction.onClicked

onClicked

ページアクションがポップアップを持っている場合、このイベントは発生しません。あなたは何ができるか

ポップアップがロードされたとき、しかし、Tabs moduleで現在のタブの情報をフェッチしている:

chrome.tabs.getCurrent(function(tab) { 
    // tab contains information about the current tab 
}); 
+0

ポップアップのボタンから呼び出される次のコードがあります。このタブは、ReLog機能では定義されていません。 機能OnLogin() { chrome.tabs.getCurrent(機能(タブ){再ログ(タブ);}); } 機能ReLog(タブ) { console.log( "Login Requested"); returnURL = tab.url; ... } – Rob

+0

@Rob:本当ですか?あなたは "Login Requested"ログを取得しますが、 'tab.url'は失敗しますか? – pimvdb

+0

申し訳ありませんフォーマットBTW。ええ、私はReLogを使ってシングルステップにブレークポイントを設定しました。ポップアップをタブレスDOMとして扱っていると思います。 – Rob

0

私は私がやりたいことのための回避策を見つけました。背景ページ:

chrome.tabs.onActiveChanged.addListener(OnActiveChanged); 
function OnActiveChanged(tabId, selectInfo) 
{ 
    chrome.tabs.get(tabId, function(tab){ 
    window.activeTab = tab; 
    }); 
} 

これは、タブが変更されるたびにタブをキャプチャします。私のポップアップの機能では、背景ページからタブを取得します。

function OnLogin() 
{ 
    backgroundWindow = chrome.extension.getBackgroundPage(); 
    var activeTab = backgroundWindow.activeTab; 
... 
} 

ただし、コードをデバッグするときは注意してください。デバッガは、タブをポップアップを起動したタブから離して変更するタブ変更イベントを発生させます。

関連する問題