[英]Chrome Extension: getting active url from popup undefined
当我的 Chrome 扩展程序的弹出窗口打开时,我正在尝试获取选项卡 url。 我查看了其他答案并想出了这个:
export const getTab = () => {
return new Promise((res) => {
chrome.tabs.query({ currentWindow: true, active: true }, (tabs) => {
console.log('tabs:', tabs);
res(tabs[0]);
});
});
};
Promise 解析为
{
"active": true,
"audible": false,
"autoDiscardable": true,
"discarded": false,
"groupId": -1,
"height": 624,
"highlighted": true,
"id": 2297,
"incognito": false,
"index": 1,
"mutedInfo": {
"muted": false
},
"openerTabId": 128,
"pinned": false,
"selected": true,
"status": "complete",
"width": 160,
"windowId": 1
}
选项卡的 url undefined
!
我已经尝试将"tabs"
和"activeTab"
添加到我的清单 v3 的permissions
数组中,但 url 仍然未定义。 帮助!
编辑:
manifest.json
{
"manifest_version": 3,
"name": "Test",
"version": "1.0.0",
"action": {
"default_title": "Test",
"default_popup": "popup.html"
},
"permissions": ["tabs"],
"background": {
"service_worker": "src/background.js",
"type": "module"
},
"content_scripts": [
{
"js": ["src/contentScript.js"],
"matches": ["<all_urls>"],
"run_at": "document_start",
"all_frames": true
}
],
}
如何等待 chrome.tabs.query 返回选项卡 ID
如果您将其从 id 更改为 url(由 Lakshya Thakur 发布),则此问题的答案将是您的问题的解决方案。
当我试图将当前标签 url 转换为 chrome 扩展时,这确实解决了我的问题。
function getTabID() {
return new Promise((resolve, reject) => {
try {
chrome.tabs.query({
active: true,
}, function (tabs) {
resolve(tabs[0].id);
})
} catch (e) {
reject(e);
}
})
}
//function where you need it
async function something() {
let responseTabID = await getTabID();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.