0

chrome.windows.getCurrentは、background.html自体のみを取得します。私が本当に欲しいのは、ユーザーが閲覧しているコンテンツウィンドウです。

このためのヒント、ありがとう!

4

2 に答える 2

1

現在のウィンドウは、現在実行中のコードを含むウィンドウです。これは、最上部のウィンドウまたはフォーカスされたウィンドウとは異なる可能性があることを理解することが重要です。たとえば、拡張機能が単一のHTMLファイルからいくつかのタブまたはウィンドウを作成し、そのHTMLファイルにchrome.tabs.getSelectedへの呼び出しが含まれているとします。現在のウィンドウは、一番上のウィンドウに関係なく、呼び出しを行ったページを含むウィンドウです。

ユーザーが閲覧しているコンテンツウィンドウを取得したい場合は、次のコードを使用できます。

popup.js

chrome.windows.getAll({"populate":true},function (windows){
    for(i=0;i<windows.length ;i++){
        if(windows[i].focused){
            for(j=0;j<windows[i].tabs.length;j++){
                if(windows[i].tabs[j].selected && windows[i].tabs[j].active && windows[i].tabs[j].highlighted ){
                    console.log(JSON.stringify(windows[i].tabs[j]));
                }
            }
        }   
    }
});
于 2012-11-25T05:49:13.877 に答える
0

chrome.windows.getLastFocused()を使用してみませんか?

于 2012-11-25T10:59:48.397 に答える