web-dev-qa-db-fra.com

Google Chrome Extensions - Ouvrir un nouvel onglet lorsque vous cliquez sur une icône de la barre d'outils

Comment puis-je créer une extension pour Chrome qui ajoute une icône à la barre d'outils, et lorsque vous cliquez dessus, elle ouvre un nouvel onglet avec une page Web locale (par exemple: f.html)?

J'ai vu cette question , mais cela n'explique pas vraiment ce que je dois ajouter dans le fichier manifeste ...

68
Alon Gubkin

Ce n'est pas vrai pour les nouvelles applications chrome.

Plus récent chrome ayant manifest_version: 2 nécessitent que les onglets soient ouverts comme suit:


chrome.browserAction.onClicked.addListener(function(activeTab)
{
    var newURL = "http://www.youtube.com/watch?v=oHg5SJYRHA0";
    chrome.tabs.create({ url: newURL });
});

92
Abhishek Mehta

Eh bien, dans le extensions docs , il indique dans manifest , vous devez inclure "tabs" comme autorisation. De la même manière, ils expliquent l'application Hello World:

Fichier manifeste:

{
  "name": "My Extension",
  "version": "1.0",
  "description": "Opens up a local webpage",
  "icons": { "128": "icon_128.png" },
  "background_page": "bg.html",
  "browser_action": {
    "default_title": "",
    "default_icon": "icon_19.png"
  },
  "permissions": [
    "tabs"
  ],
}

Dans la page d'arrière-plan , vous écoutez l'événement de clic de souris sur l'action du navigateur.

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.create({'url': chrome.extension.getURL('f.html')}, function(tab) {
    // Tab opened.
  });
});

Comme vous l'avez remarqué ci-dessus, vous verrez que j'ai utilisé la question que vous avez vue dans l'autre post. Remarque, cela n'est pas testé, mais je pense que cela devrait fonctionner.

52
Mohamed Mansour

chrome.tabs.create a besoin de l'autorisation de "tabs".

Il suffit d'utiliser window.open dans l'extension sans avoir besoin d'aucune autorisation. et le code est plus court. Je suggère cette solution.

window.open(url,'_blank');
5
cuixiping