Soy nuevo en las extensiones de Chrome. Me gustaría crear una extensión de cromo simple que muestre una alerta con el título de la página html actual. cuando estoy realizando: alert(document.title)
, no lo obtengo porque el objeto del documento no pertenece a la página sino al script de extensión (¿es correcto?) ¿cómo obtengo el objeto del documento correcto?accediendo a la página html actual desde la extensión de cromo
Respuesta
Puede utilizar el tabs module:
chrome.tabs.getCurrent(function(tab) {
alert(tab.title);
});
guiones de contenido son la forma más fácil de ir:
Ampliar su archivo de manifiesto con este código:
...
"content_scripts": [
{
"matches": ["http://urlhere/*"],
"js": ["contentscript.js"]
}
],
...
escritura de contenido (ejecutado automáticamente en cada página como se mencionó al matches
en el archivo de manifiesto):
alert(document.title)
La ventaja de utilizar guiones de contenido más chrome.extension.*
métodos es que su extensión no requiere sc permisos ary, como tabs
.
Consulte también:
Por lo que estás haciendo todo lo que nee d hacer es esto
chrome.tabs.executeScript({
code: 'alert(document.title)'
})
la API chrome.tabs.executeScript le permite ejecutar JavaScript de la página actual en lugar de en la extensión por lo que este funciona muy bien, pero si usted desea utilizar el nombre de la página más tarde en una extensión de más compleja de lo que me acaba de hacer lo que hicieron pimvdb
¿Esto requeriría agregar 'unsafe-eval' a CSP? – Xan
que utilizan esta extensión para hacer algo similar:
main.js:
(function(){window.prompt('Page title:', document.title)})()
manifest.json:
{
"background": {"scripts": ["background.js"]},
"browser_action": {
"default_title": "popup_title"
},
"name": "popup_title",
"description": "Display the page title for copying",
"permissions": [
"tabs",
"http://*/*",
"https://*/*"
],
"version": "1.0",
"manifest_version": 2
}
background.js:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(tab.id, {file: "main.js"})
});
- 1. Obteniendo el código fuente de HTML de la página actual desde la extensión de cromo
- 2. Página de fondo en extensión pop-cromo
- 3. Cargando html en elemento de página (extensión de cromo)
- 4. Interceptar cuerpo de solicitud HTTP desde la extensión de cromo
- 5. templates angularjs en la extensión de cromo
- 6. Carga de script de contenido en la extensión de cromo
- 7. Accediendo a la posición actual de UIView durante la animación
- 8. Inyectar CSS para la extensión de cromo
- 9. Insertar una imagen en la extensión de cromo
- 10. Accediendo a typedef desde la instancia
- 11. Accediendo a la fuente personalizada desde Jar
- 12. Extensión de Chrome: reemplazar HTML antes de cargar la página
- 13. Accediendo a RequestContext desde global.asax
- 14. Llamar a una función .dll desde una página html que se ejecuta en cromo y firefox
- 15. Obtener la URL de la página actual de la extensión de la barra lateral de firefox
- 16. Redireccionando a la página html local desde javascript en phonegap
- 17. Ver URL de la página web actual (dinámico) en HTML
- 18. Cargando javascript externo en google cromo extensión
- 19. Accediendo a la sesión desde la plantilla TWIG
- 20. Obteniendo la página actual
- 21. cómo comunicarse entre una página de opciones y una página de fondo de la extensión de cromo
- 22. extensión de cromo, ventana emergente altura
- 23. Cómo guardar la página aspx actual como html
- 24. Extensión de Chrome: actualice popup.html a una nueva página html
- 25. redirigir a la página actual en ASP.Net
- 26. Django: ¿accediendo a la instancia del modelo desde ModelAdmin?
- 27. Access-Control-Allow-Origin en la extensión de cromo
- 28. Tener comportamiento del panel en la extensión de cromo
- 29. cómo llamar a una función en la extensión de Firefox desde un botón html
- 30. accediendo a localhost desde vm
@ Rob W: Yo sólo hizo una pregunta similar http://stackoverflow.com/questions/1964225/accessing-current-tab -dom-object-from-popup-html. Pero en mi caso, la extensión está enviando la información de la pestaña actual a mi aplicación de marcadores. Por lo que entiendo su respuesta, cualquier página que intente marcar debe ser incluida en el archivo de manifiesto. ¿Es esto correcto? En ese caso, será inútil. Gracias. – Zeynel
@Zeynel Luego incluya '" * "': '" coincidencias ": [" * "],' –
@ Rob W: Gracias. Puede que no esté haciendo esto bien, pero tuve que ingresar '" coincidencias ":" "http: // */*"], 'para que funcione de acuerdo con este http://code.google.com/chrome/extensions /match_patterns.html de lo contrario, recibí 'Falta el separador de esquema' No lo he probado todavía, pero al menos la extensión cargó. Gracias de nuevo. – Zeynel