2012-04-21 15 views

Respuesta

8

La API webRequest podría ser lo que necesita este código va en su página de fondo :

chrome.webRequest.onBeforeRequest.addListener(
    function(details) { 
     if(details.url == "http://www.google.com/") 
      return {redirectUrl: "http://www.google.com/?q=defaultquery" }; 
    }, 
    {urls: ["http://www.google.com/*"]}, 
    ["blocking"]); 

Esta es una regla muy específica que redirige las visitas a http://www.google.com/ con http://www.google.com/?q=defaultquery, pero creo que ca n vea cómo expandirlo para incluir más funcionalidades.

Tenga en cuenta que esto reenrutará todos los intentos de para llegar a http://www.google.com/, incluidas las solicitudes de Ajax y los iframes.

por la documentación, tendrá que agregar los permisos webRequest y webRequestBlocking, junto con permisos de host para cada host va a interceptar:

"permissions": [ 
    "webRequest", 
    "webRequestBlocking", 
    "*://*.google.com/", 
    ... 
], 
+0

¿Qué archivo debo escribir este código, cómo le añadimos el permiso para ello. – anwerj

+1

@anwerjunaid Desde el texto anterior: "El código va en la página de fondo". Los permisos necesarios se describen en el [primer párrafo de la documentación de webRequest] (http://code.google.com/chrome/extensions/webRequest.html), que ya he mencionado anteriormente. Necesitas 'webRequest',' webRequestBlocking', y permisos de host para cada sitio que quieras interceptar. – apsillers

1

Esta es una vieja pregunta todavía estoy respondiendo a ella para lectores futuros.

La modificación de los parámetros de consulta es un poco difícil porque puede terminar en un bucle infinito y Chrome/Firefox puede detectarlo y procesar el estado actual de la solicitud Url.

me he enfrentado a esta situación en mi extensión de Chrome Requestly, donde los usuarios utilizan Replace Rule y reemplazados con www.google.comwww.google.com?q=query o hicieron algo similar.

Problema con este enfoque es que el navegador puede interceptar la url de solicitud después de agregar el parámetro de consulta, por lo que el parámetro se agregará varias veces y se dañará la url. Por lo tanto, debe asegurarse de lo siguiente: -

  1. No interceptar la solicitud una vez que se ha redirigido.
  2. Compruebe si el parámetro ya existe, no lo redirija.

Como correctamente señaló @apsillers en su respuesta, debe usar la API webRequest para realizar cualquier modificación a la URL. Por favor, eche un vistazo a su answer y escriba su código en consecuencia.

Por si acaso, usted está buscando una solución ya disponible, considere intentar Requestly's Query Parameter Rule. Aquí está una captura de pantalla de lo que parece: -

enter image description here

Para Firefox, puede descargar Requestly from its home page.

Cuestiones relacionadas