首页 > 解决方案 > 无法在 background.js 脚本中访问 c​​hrome.tabs.query

问题描述

我一生都无法弄清楚这一点。我正在尝试chrome.tabs.query在我的背景页面上使用以获取当前选项卡以对按钮单击执行操作。选项卡调用产生以下错误据Error handling response: TypeError: Cannot read properties of undefined (reading 'id')我了解,返回值未定义。我的问题是如何获得标签值?我可以通过popup.js消息发送选项卡值吗?

popup.js

document.addEventListener("DOMContentLoaded", function() {
    setOptions();

    document.getElementById("buttonScan").addEventListener("click", function() {
        loadOptions();
        chrome.runtime.sendMessage({
            "message": "getWords",
            "remove": true,
        });
    });
});

背景.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    
    if ("getWords" == request.message) {
            chrome.tabs.query({
                    "active": true,
                    "currentWindow": true
                },
                function(tabs) {

                        chrome.tabs.sendMessage(tabs[0].id, {
                            "message": "returnWords",
                            "remove": request.remove,
                            "keywords": chrome.storage.local.get("keywords"),
                            "foreground": chrome.storage.local.get("foreground") || "red",
                            "background": chrome.storage.local.get("background") || "#lightblue",
                        });
                }
            );
    }
});

标签: javascriptgoogle-chrome-extensionbackground-process

解决方案


推荐阅读