javascript - 无法在 background.js 脚本中访问 chrome.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",
});
}
);
}
});
解决方案
推荐阅读
- rundeck - 是否可以将 Rundeck 徽标替换为社区 docker 映像中的自定义徽标?
- vue.js - Bootstrap Vue 更改活动按钮颜色
- python - Python:如何使用 MPI 并行化一个简单的循环
- graphics - B样条曲线上的最近点?
- javascript - 升级到 Snowpack 3 后找不到文件
- arangodb - 无法从数据集中提取对象值以进行比较或应用过滤器
- php - 供应商/lcobucci/jwt/src/Configuration.php 上的 Laravel 8 错误
- node.js - 连接时套接字console.log()不显示
- typescript - 为什么将类型改装到无类型的东西上需要一个新的 npm 包?
- javascript - 基于给定数组减少 javascript 对象中的键值对