chrome.windows.getCurrentは、background.html自体のみを取得します。私が本当に欲しいのは、ユーザーが閲覧しているコンテンツウィンドウです。
このためのヒント、ありがとう!
chrome.windows.getCurrentは、background.html自体のみを取得します。私が本当に欲しいのは、ユーザーが閲覧しているコンテンツウィンドウです。
このためのヒント、ありがとう!
現在のウィンドウは、現在実行中のコードを含むウィンドウです。これは、最上部のウィンドウまたはフォーカスされたウィンドウとは異なる可能性があることを理解することが重要です。たとえば、拡張機能が単一の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]));
}
}
}
}
});
chrome.windows.getLastFocused()を使用してみませんか?