开发者问题收集

chrome.tabs.query 状态:加载->异常?

2014-12-27
811

我想为我的浏览器扩展程序的 chrome.tabs.query 状态创建一个例外。

我的代码目前如下所示:

chrome.tabs.query({
    "active":        true,
    "currentWindow": true,
    "status":        "loading",   // <-- this line
    "windowType":    "normal"
}, ...);

但对于 www.gmx.net www.web.de ,状态应为 “完成” 。有人能告诉我如何创建此例外吗?

1个回答

您可以 url: [] 属性添加到查询信息 ,如下所示:

chrome.tabs.query({
    "active":        true,
    "currentWindow": true,
    "status":        "complete",
    "windowType":    "normal",
    "url": ["*://www.gmx.net/*", "*://www.web.de/*"]
}, ...);

上述代码将检查已完成加载的选项卡,但仅限于 gmx.net web.de 上的选项卡。

然后,您可以合并这两个查询并使用相同的函数 ,如下所示:

function myFunction(tabs) {
    if (~tab.url.indexOf('www.gmx.net') || ~tab.url.indexOf('www.web.de')) {
        // the tab is on gmx.net or web.de and is complete
    } else {
        // the tab is not on gmx.net nor web.de and is still loading
    }
};

chrome.tabs.query({
    "active":        true,
    "currentWindow": true,
    "status":        "loading",
    "windowType":    "normal"
}, myFunction);

chrome.tabs.query({
    "active":        true,
    "currentWindow": true,
    "status":        "complete",
    "windowType":    "normal",
    "url": ["*://www.gmx.net/*", "*://www.web.de/*"]
}, myFunction);
Marco Bonelli
2014-12-28