开发者问题收集

chrome.tabs.query:属性“currentWindow”:意外

2012-07-27
2251

我为我的 Chromium (18.0.1025.151) 浏览器安装了扩展 timeStats,但它无法正常工作。在调试过程中,我发现了问题 - 在执行方法“chrome.tabs.query”期间,出现一条消息:“属性‘currentWindow’:意外属性。”, 尽管此参数的文档描述为: http://code.google.com/chrome/extensions/tabs.html#method-query

这是一个错误还是可以修复错误?

一些代码:

if (isWindowActive && !isWindowMinimized)
{
    chrome.idle.queryState(parseInt(options.idle_time), function(state) {
        //problem below
        chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        //problem above
            var tabId = tabs[0].id;
            if (state=='active')
            {
                setBadgeColorActive(chrome.windows.WINDOW_ID_CURRENT);
                //if browser active update the info
                if (isLoaded)
                {
                    update(true);
                }
            }
            //set icon gray
            else
            {
                chrome.browserAction.setBadgeBackgroundColor({color: badgeIdle, tabId: tabId});
                chrome.browserAction.setTitle( {title: chrome.i18n.getMessage("freezed")+" "+options.idle_time+" "+chrome.i18n.getMessage("seconds_lcase"), tabId: tabId });
            }
        });
    });
}
1个回答

您正在相当老的 Chromium 版本 (18) 上测试此问题,而您在问题中提到的文档指的是 Chromium 版本 20。如果您查看 扩展 API 的更改 ,您会发现:

Google Chrome 19

(...)

The chrome.tabs query() method now has the currentWindow and lastFocusedWindow parameters.

(...)

因此 currentWindow 在版本 19 之前不可用。


奖励:

如果您依赖 currentWindow ,请确保在 manifest.json 中将 minimum_chrome_version 设置为 19。

Konrad Dzwinel
2012-07-27