javascript - chrome.tabs.Tab 未在 popup.js 脚本中定义

标签 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 是可访问的,但我似乎无法获取它。我做错了什么?

最佳答案

您必须查询选项卡。

如果要执行所有tab中的代码。您可以使用此代码。

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 + '";'
        });
    };
});

关于javascript - chrome.tabs.Tab 未在 popup.js 脚本中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49933404/

相关文章:

java - 如何从javascript中的java文件调用方法?

javascript - Chrome滚动错误?

css - 谷歌浏览器在按钮用户代理样式的焦点状态上显示黑色边框

javascript - 使用 ng-if 根据 ng-repeat 内的文件扩展名类型显示文本(Angular 的新功能)

javascript - 为各种 SVG 重用 SVG.js 代码

javascript - jQuery 模糊事件在 Chrome 中触发了两次

javascript - Chrome 扩展 : Not allowed to load local resource

javascript - 关于 document.addEventListener ('mousemove' , function (e) { 的新手问题

jquery - 如何在浏览器不加载引用图像的情况下执行跨域 GET?

Javascript - 总行数