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)

Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Falls du auf diesen Beitrag mit einem Artikel auf deiner eigenen Webseite geantwortet hast, kannst du hier die URL deines Beitrags eingeben. Dabei sollte es sich um die Permalink-URL handeln. Deine Antwort wird dann (möglicherweise nach der Moderation) auf dieser Seite angezeigt. Falls du deine Antwort aktualisieren oder entfernen möchtest, aktualisiere oder lösche deinen Beitrag auf deiner eigenen Webseite und gib die URL des Beitrags erneut ein. (Erfahre mehr über Webmentions.)