chrome.tabs.Tab未定义来自popup.js脚本

时间:2018-04-20 03:17:57

标签: javascript google-chrome google-chrome-extension google-developer-tools

我正在浏览Chrome扩展程序“入门指南”:

  

https://developer.chrome.com/extensions/getstarted

并且一节提到了这段代码

chrome.tabs.executeScript(
    tabs[0].id,
     {code: 'document.body.style.backgroundColor = "' + color + '";'});
};

我在tabs[0].id上收到了未定义的错误。现在API文档指出chrome.tabs.Tab是可访问的,但我似乎无法得到它。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您必须查询标签。

如果要在所有选项卡中执行代码。您可以使用此代码。

chrome.tabs.query({}, function(tabs) {
    var message = {foo: bar};
    for (var i=0; i<tabs.length; ++i) {
        chrome.tabs.executeScript(tabs[0].id, {
                code: 'document.body.style.backgroundColor = "' + color + '";'
            });
        };
    }
});

如果只想在当前选项卡中执行代码。您可以使用此代码。

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
    chrome.tabs.executeScript(tabs[0].id, {
            code: 'document.body.style.backgroundColor = "' + color + '";'
        });
    };
});

答案 1 :(得分:0)

请检查您的清单文件,您需要在manifest.json文件中提供相关权限:

"permissions": ["activeTab"],

授予对尚未提供的标签API的访问权限