Chrome Sidepanel: Close-Event simulieren

Das neue Sidepanel in Chrome stellt kein Close-Event zur Verfügung, dass man z.B. ganz gut gebrauchen könnte, um nach dem Schließen des Panels Daten aufzuräumen.

Man kann das Event aber simulieren, indem man eine permanente Verbindung zwischen dem Sidepanel und dem Background-Skript herstellt. Diese Verbindung feuert ein OnDisconnect-Event. wenn das Sidepanel geschlossen wird.
sidepanel.js:

chrome.runtime.connect({ name: 'mySidepanel' });

Im Background-Skript kann ein Listener das Event ab und dementsprechend reagieren.
background.js:

chrome.runtime.onConnect.addListener(function (port) {
  if (port.name === 'mySidepanel') {
    port.onDisconnect.addListener(async () => {
      console.log('Sidepanel closed.');
    });
  }
});

Es ist zu beachten, dass das Event nicht gefeuert wird, wenn man zwischen Panels hin- und herschaltet, sondern nur beim vollständigen Schließen des Panels.

(Foto von iMattSmart auf Unsplash)

Leave a Reply

Your email address will not be published. Required fields are marked *

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)