2011-12-09 7 views
2
var windows = chrome.windows.getCurrent(
    function(windows){ 
     try{ 
      // dont really know why this is null. it should be a list of tabs. 
      if(windows.tabs == null) 
     alert(windows.type + " " + windows.id); 
     } 
     catch(e){ 
      alert(e); 
     } 
    }); 

私はこのコードを使用して、現在のウィンドウ内の開いているタブをすべて取得しています。しかし、現在のウィンドウでタブが開いていても、window.tabsは常にnullです。現在のウィンドウのコンセプトに何か問題がありますか? 誰も私が間違っていることを説明してください。おかげさまで chrome.windows.getCurrentが開いているタブのリストを返さない

答えて

5

windowsのように、コールバックに渡されるオブジェクトにはtabsフィールドがありません。代わりにこのコードを試してみてください。

chrome.windows.getCurrent(function(win) 
{ 
    chrome.tabs.getAllInWindow(win.id, function(tabs) 
    { 
     // Should output an array of tab objects to your dev console. 
     console.debug(tabs); 
    }); 
}); 

また、あなたがtabs権限を持っていることを確認してください。私はバックグラウンドページでこれを実行したので、バックグラウンドページで実行していない場合は、chrome.tabsがあなたのコンテキストで利用可能であることを確認する必要があります。

+0

バックグラウンドページではなくポップアップで実行しています。私はchrome.tabsがあなたの文脈で利用可能であると言うとき、私は何を意味するのですか? – intoTHEwild

+0

btwは完全に動作しますが、私のコードで何が間違っていたのか分かりません。 – intoTHEwild

+0

拡張機能の中には、基本的にはコンテンツスクリプトだけです。一部の機能はこれらの機能では利用できず、拡張機能の背景部分でのみ利用できます。あなたのコードに間違っていたのは、あなたが使っていた 'windows'変数に決して' tabs'プロパティがないということです(それが意味をなさないかもしれませんが)。もともとAPIにはなかっただけです。 –

関連する問題