Quiero crear una extensión para iniciar sesión automáticamente en mis servidores. Así que creé una página de fondo para verificar la URL actual y si se ajusta a mi URL regex, mostraré el ícono de acción de la página. Al hacer clic en la acción de la página, abro una ventana emergente con algunos campos. Necesito obtener la URL actualmente abierta y completarla en uno de los campos en la ventana emergente (como cuando hacemos clic en la acción de la página de marcador estándar, la URL se rellena automáticamente en la ventana emergente que se abre). ¿Cómo puedo hacer algo como esto en las extensiones de Chrome? Probé Message Passing desde la página de fondo al popup html pero no funciona. ¿Es posible enviar mensajes como ese? También traté de configurar onload para el archivo html emergente pero noté que no se está disparando. Sugiera un método adecuado para enfrentar este escenario.¿Cómo obtener la URL de la pestaña abierta actualmente en la ventana emergente de mi acción de página?
19
A
Respuesta
43
Uso chrome.tabs.query
con los siguientes parámetros:
- QueryInfo objeto:
active: true
- Para obtener la ficha activalastFocusedWindow: true
- Para seleccionar la ventana activa
- función de devolución de llamada:
Esta función recibe un argum ent: una matriz de pestañas combinadas. Como solo una ventana puede estar activa, y una pestaña dentro de esta ventana, la matriz tiene solo un elemento. Este elemento es un objeto con elTab
signature.
Código fragmento:
// Do NOT forget that the method is ASYNCHRONOUS
chrome.tabs.query({
active: true, // Select active tabs
lastFocusedWindow: true // In the current window
}, function(array_of_Tabs) {
// Since there can only be one active tab in one active window,
// the array has only one element
var tab = array_of_Tabs[0];
// Example:
var url = tab.url;
// ... do something with url variable
});
El permiso activeTab
es suficiente para que esto funcione.
2
También puede utilizar las promesas de una forma más limpia de la recuperación de una pestaña:
getCurrentTab().then(function(tab){
// Do something w/tab
});
function getCurrentTab(){
return new Promise(function(resolve, reject){
chrome.tabs.query({
active: true, // Select active tabs
lastFocusedWindow: true // In the current window
}, function(tabs) {
resolve(tabs[0]);
});
});
}
Cuestiones relacionadas
- 1. cambiar la URL de una ventana emergente ya abierta
- 2. Obtener la URL actual de la ventana emergente con javascript
- 3. Cómo ocultar la ventana emergente de URL en UIwebview
- 4. Acceda a la "Pestaña Editar página URL" desde la página
- 5. cómo obtener la pestaña actual de la página de fondo
- 6. obtener la página actual de la url
- 7. Escuchar al cambio de URL en la ventana abierta
- 8. Averigüe la pestaña de página URL desde la ID de página y la ID de aplicación
- 9. Ventana emergente, cómo ocultar la barra URL en IE8
- 10. página abierta GWT en una nueva pestaña
- 11. Cómo obtener hWnd de la ventana abierta por ShellExecuteEx .. hProcess?
- 12. Cómo obtener la URL de la página actual en PHP
- 13. Cómo obtener la URL de la página actual en C#
- 14. Obtener la URL de la página actual en Grails
- 15. obtener la URL de la página actual y cambiar la acción
- 16. Capturar el evento cercano de la ventana emergente en JavaScript
- 17. NERDTree Auto-abierta en la pestaña "CADA"
- 18. Ventana emergente de WPF: ¿Cómo poner un borde alrededor de la ventana emergente?
- 19. Cómo obtener la URL de la página anterior usando jquery
- 20. Tamaño de la ventana emergente en android
- 21. Javascript registro de eventos de cierre de la ventana/pestaña antes de la ventana/pestaña estrecha
- 22. ¿Cómo establecer las dimensiones iniciales de la ventana emergente de acción del navegador?
- 23. Cómo cerrar la ventana emergente y redireccionar la ventana principal
- 24. emergente posición abierta en cromo
- 25. Obtener URL de la página usando javascript
- 26. Obteniendo la URL de la página actual usando Selenium WebDriver
- 27. ¿Cómo personalizaría la apariencia de la ventana emergente del folleto?
- 28. Abrir página en una nueva ventana sin ventana emergente
- 29. ¿Cómo mantener abierta la ventana emergente cuando la orientación cambia en el tiempo de ejecución en Android?
- 30. ¿Cómo cerrar la ventana emergente en funcionamiento de selenio?
Gracias por la respuesta de Rob. Pero ahora el problema es que cómo lo ejecuto en la ventana emergente de acción de la página. Intenté este código en una etiqueta de script en la sección principal del archivo html emergente, pero no se ejecuta cuando abro la ventana emergente. De todos modos, puedo hacer que esto se ejecute cuando se abre la ventana emergente? –
@JophinJoseph Asegúrese de que se cumplan todas las condiciones: 1. La 'pestaña' [permiso] (http://code.google.com/chrome/extensions/manifest.html#permissions) se debe establecer en el archivo de manifiesto. 2. Al usar código en línea, asegúrese de que ['" manifest_version ": 2'] (http://stackoverflow.com/a/10417745/938089?communication-between-contentscript-js-and-chrome-extension) no lo haga existir en el archivo de manifiesto. [Inspeccionar la ventana emergente] (http://code.google.com/chrome/extensions/tut_debugging.html#inspect-popup) para ver si aparece algún error. –
Gracias Rob. Eso resolvió mi problema. –