¿Agregar el controlador onClicked a la acción del navegador sin ventana emergente?

Estoy empezando con Chrome Extensions.

Mi extensión tiene 2 content_scripts que se ejecutan al cargar la página. Me gustaría agregar un onClicked controlador para la acción de mi navegador desde dentro de uno de estos archivos JS.

Básicamente lo que quiero hacer es chrome.browserAction.onClicked.addListener pero he leído en una pregunta similar que esto solo funciona dentro de un archivo html emergente. No estoy usando un archivo emergente porque actualmente no necesito uno, y necesito que mi JS se ejecute en el ámbito global (como lo hace sin un default_popup).

Aquí está mi manifest.json:

{
  "manifest_version": 2,

  "name": "Foo",
  "description": "Foo description.",
  "version": "0.0.0.1",
  "permissions":[
    "tabs", "http://*/*", "https://*/*"
  ],
  "browser_action": {
    "default_icon": "icon.png"
  },
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["jquery1.9.1.min.js", "foo.js"]
    }
  ]
}

Lo siento, pero mis habilidades de búsqueda en Google no pudieron encontrar cómo hacer esto. ¿Hay alguna manera de adjuntar un onClicked controlador a la acción de mi navegador o necesito una ventana emergente html para eso?

preguntado el 11 de abril de 13 a las 04:04

1 Respuestas

Decidí simplemente mover mi comentario demasiado largo a una respuesta.

Si tiene una ventana emergente definida, entonces el onClicked El evento nunca se dispara, pero funciona bien sin uno. Simplemente inserte el controlador en su página de fondo y debería funcionar bien. Sé consciente de chrome.browserAction, así como casi todos los demás chrome.* API, no se puede acceder desde un content script, por lo que necesitará el uso de un background or event .

Respondido 11 Abr '13, 04:04

en realidad puedes usar algunos chrome.* Métodos API como chrome.extension desarrollador.chrome.com/extensions/content_scripts - Menos

@Less Es por eso que dije "Casi", ya que los que puede usar son muy limitados. - BarbaPuño

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.