Chrome Sidepanel: Close-Event simulieren

imattsmart-Vp3oWLsPOss-unsplash

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

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.