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.