executeScript
возвращает последний оцененный результат кода в обратный вызов, см. документацию .
Обратите внимание, что при работе на активной вкладке нет необходимости в chrome.tabs.query
. Вы можете просто опустить идентификатор вкладки (это то, что означает «необязательный» в документации), и весь код будет:
chrome.tabs.executeScript({
code: 'document.getElementById("element-id").style.filter',
}, results => {
if (!chrome.runtime.lastError) {
const mainPageResult = results[0];
console.log(mainPageResult);
// do something with mainPageResult here inside the callback
}
}
Он не может передавать элементы DOM, Map, Set, ArrayBuffer, классы , функции и т. д. - он может передавать только JSON -совместимые простые объекты и типы. Поэтому вам нужно будет вручную извлечь необходимые данные и передать их в виде простого массива или объекта.
Обратный вызов вызывается асинхронно, поэтому эти темы могут быть полезны: