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 回答