Я адаптировал идею GnxR в следующем:
extension/page/sidebar.html
:
<!DOCTYPE html>
<html>
<body>
<div id="panel"></div>
<script src="static.js"></script>
</body>
</html>
extension/page/static.js
:
window.addEventListener('beforeunload', (event) => {
console.log('Sidebar will be closed!');
// Do stuff
});
window.addEventListener('pagehide', (event) => {
console.log('Sidebar is hidden!');
// Do stuff
});
window.addEventListener('unload', (event) => {
console.log('Sidebar is unloaded!');
// Do stuff
});
При закрытии расширения (оба изперемычку и программно), я получаю в консоли браузера следующее:
Sidebar is hiding! static.js:6:3
Sidebar is unloaded! static.js:10:3
Поэтому кажется, что можно использовать как события pagehide
, так и unload
, но beforeunload
никогда не запускается.