Chtome api tabs. Как получить url текущей вкладки в 3 версии манифеста
Пишу расширение для хрома по доке, но не могу найти внятного примера как получить урл или другую инфу текущей вкладки. Поиск тоже не дал особого результата. Как я понимаю, версии манифестов достаточно сильно отличаются. Возможно, и не в них дело. Я бэкенд разработчик и в js не очень силен, поэтому сори, если что. Буду рад любой помощи.
manifest.json
{
"name": "ext_name",
"description": "ext_description",
"version": "1.0",
"manifest_version": 3,
"background": {
"service_worker": "background.js"
},
"permissions": ["storage", "activeTab", "tabs"],
"content_scripts": [
{
"matches": ["https://*"],
"run_at": "document_idle",
"js": ["add.js"],
"css": ["button.css"]
}
]
}
background.js
chrome.runtime.onInstalled.addListener(() => {});
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
var t = chrome.tabs.query({active: true, lastFocusedWindow: true});
if (request.greeting === "hello")
sendResponse({farewell: "goodbye", tab: t});
}
);
add.js
let app = document.getElementById("app");
let div = document.createElement('div');
div.classList.add('iWant');
let text = document.createTextNode('iWant!');
div.appendChild(text);
app.before(div);
let iWantButton = document.getElementsByClassName('iWant');
iWantButton[0].addEventListener('click', function () {
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
console.log(response.tab);
});
});
и в ответ приходит
{}
[[Prototype]]: Object
constructor: ƒ Object()
hasOwnProperty: ƒ hasOwnProperty()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toLocaleString: ƒ toLocaleString()
toString: ƒ toString()
valueOf: ƒ valueOf()
__defineGetter__: ƒ __defineGetter__()
__defineSetter__: ƒ __defineSetter__()
__lookupGetter__: ƒ __lookupGetter__()
__lookupSetter__: ƒ __lookupSetter__()
__proto__: (...)
get __proto__: ƒ __proto__()
set __proto__: ƒ __proto__()
Не знаю что с этим делать. Подскажите, плз
Ответы (1 шт):
Автор решения: Mykola K
→ Ссылка
chrome.tabs.getSelected(null, function(tab) {
const tabId = tab.id;
const tabUrl = tab.url;
});
Обновленный для 3 версии - https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query
let querying = browser.tabs.query(queryObj)