Когда я изменяю «выгрузить» на «размытие», это работает (к сожалению, даже когда я убираю фокус только с кнопки, вызывающей функцию «прокрутка»). Я хочу, чтобы "stopScrolling" выполнялся после того, как пользователь закрывает (щелкает снаружи) всплывающее окно. Я также пробовал событие «beforeunload», которое также не работает. Ниже приведена поврежденная версия кода:
function scroll(tabs) {
browser.tabs.sendMessage(tabs[0].id, {
command: "scroll",
})
}
function stopScrolling(tabs) {
browser.tabs.sendMessage(tabs[0].id, {
command: "stop",
})
}
function reportError(error) {
console.error(`Could not execute: ${error}`)
}
function init() {
window.addEventListener("unload", () => {
browser.tabs.query({ active: true, currentWindow: true })
.then(stopScrolling)
.catch(reportError)
})
window.addEventListener("click", (e) => {
browser.tabs.query({ active: true, currentWindow: true })
.then(scroll)
.catch(reportError)
})
}
function reportExecuteScriptError(error) {
document.querySelector("#popup-content").classList.add("hidden")
document.querySelector("#not-received-msg").classList.remove("hidden")
document.querySelector("#not-received-msg").textContent = "Script error!"
console.error(`Failed to execute content script: ${error.message}`)
}
browser.tabs.executeScript({ file: "bcgscript.js" })
.then(init)
.catch(reportExecuteScriptError)