Chrome扩展程序background.html如何访问当前窗口(用户的内容窗口)

时间:2012-11-25 02:11:28

标签: google-chrome-extension

chrome.windows.getCurrent 只能获取background.html本身。我真正想要的是用户正在浏览的内容窗口。

对此有任何提示,谢谢!

2 个答案:

答案 0 :(得分: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]));
                }
            }
        }   
    }
});

答案 1 :(得分:0)

为什么不使用chrome.windows.getLastFocused()?