В Chrome расширении, чтобы поймать активированную или обновленную вкладку и получить URL-адрес от них, я использую конструкцию, подобную
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
if (changeInfo.url) run(tab);
});
chrome.tabs.onActivated.addListener(info => {
chrome.tabs.get(info.tabId, run);
});
const processingTabId = {};
function run(tab) {
if (processingTabId[tab.id]) return;
processingTabId[tab.id] = true;
let newUrl = new URL(tab.pendingUrl || tab.url)
currentHost = newUrl.host;
В некоторые дни она работала как чудо, и это расширение использовалось. Но сегодня, без обновления Chrome или какого-либо изменения кода, я внезапно осознаю, что ни при каких обстоятельствах не получаю URL, ни при активации вкладок, ни при обновлении вкладок (refre sh). Заглядывая в расширение внутреннего интерфейса, я обнаружил ошибку, которой никогда не было:
Cannot access 'processingTabId' before initialization
и эти строки кода были помечены:
function run(tab) {
if (processingTabId[tab.id]) return;
Кто-нибудь знает, что эта ошибка означает, как это исправить и почему это происходит так внезапно?