Garder les fenêtres contextuelles ouvertes lors de l'ouverture d'une nouvelle page

J'ai le code suivant pour présenter mon extension Chrome.

// detect if this is the first time running var first_run = false; if (!localStorage['ran_before']) { first_run = true; localStorage['ran_before'] = '1'; } // if not, start the intro() script if (first_run) intro(); // intro script function intro() { window.open("intro/index.html", '_blank'); } 

Mais malheureusement, quand je clique sur l'extension, il n'ouvre pas le popup.html mais ouvre simplement la page d'introduction … il doit garder le popup.html ouvert et je suis sûr qu'il existe un moyen de le faire. Je veux les ouvrir tous les deux en même temps.

Quelle est la meilleure façon de procéder?

Alors que la réponse de Marc Guiselin est excellente, il peut être utile de savoir comment ouvrir un onglet sans fermer une fenêtre contextuelle.

Vous pouvez ouvrir l'onglet en arrière-plan, de sorte qu'il ne ferme pas votre fenêtre contextuelle.

 chrome.tabs.create({ url: chrome.runtime.getURL("intro/index.html"), active: false }); 

En général, vous devez éviter d'utiliser window.open dans les extensions et utiliser chrome.tabs et chrome.windows API à la place.

La méthode que vous utilisez est valide et devrait fonctionner, mais vous devriez probablement utiliser l'événement OnInstallé pour plus de cohérence:

 chrome.runtime.onInstalled.addListener(function(info){ if(info.reason == "install"){ console.log("Installed!"); }else if(info.reason == "update"){ console.log("Updated!"); } }); 

Il ne nécessite pas de nouvelles autorisations et gardera votre code d'installation clairement séparé du reste de votre code.