2011-02-01 27 views
17

Actualmente estoy construyendo una extensión de Google Chrome que prueba ciertos patrones y si los encuentra, los redirige a una nueva URL.¿Cómo puedo redireccionar a una URL con una extensión de Google Chrome y una secuencia de comandos de contenido?

He realizado la verificación de patrones a través de un script de contenido, y ahora no estoy seguro de cómo puedo proceder para que se realice el redireccionamiento. Alguna sugerencia ?

+5

@jmort 'window.location' no funciona desde guiones de contenido son sin privilegios. Además, 'window.location.href' devuelve la ubicación actual, pero no es un método, así que no puedo sobrescribirlo. – Sathya

Respuesta

28

Enviar redirección url de un guión de contenido a una página de fondo:

chrome.runtime.sendMessage({redirect: "http://redirect"}); 

en la URL de una pestaña de actualización de la página de fondo que causaría redirección:

chrome.runtime.onMessage.addListener(function(request, sender) { 
    chrome.tabs.update(sender.tab.id, {url: request.redirect}); 
}); 
+0

Perfecto, ¡gracias! Encontré esto también -> http://code.google.com/chrome/extensions/extension.html#event-onRequest y el video aquí -> http://code.google.com/chrome/extensions/content_scripts. html – Sathya

-3

No he trabajado con las extensiones de Google Chrome ... pero es posible que pueda utilizar una de these ways.

Según entiendo, estas API de extensión permiten la ejecución de JavaScript en la página ... después de que su simple manipulación de window.location ...

+1

Como se mencionó, las secuencias de comandos de contenido no tienen privilegios, por lo que no es posible hacerlo – Sathya

1

Si desea acceder un archivo dentro de su WebExtension, puede agregar el archivo y sus requisitos previos a web_accessible_resources en manifest.json, como en

{ 
    ... 
    "web_accessible_resources": [ 
    "images/*.png", 
    "style/double-rainbow.css", 
    "script/double-rainbow.js", 
    "script/main.js", 
    "templates/*" 
    ], 
    ... 
} 
Cuestiones relacionadas