2012-09-12 9 views
5

Tengo un problema con el desarrollo de extensiones chrome.Carga de script de contenido en la extensión de cromo

que tienen la escritura de contenido:

window.addEventListener("load",function(){ 
    var html = document.getElementsByTagName('html')[0]; 
    var title = document.getElementsByTagName('title')[0].innerHTML; 
    if(html){ 
     chrome.extension.sendRequest({akce: 'content', title: title},function(response){}); 
     alert(title); 
    } 
},false); 

entonces tengo una página BG:

chrome.extension.onRequest.addListener(function(request,sender,sendResponse){ 
    if(request.akce == 'content'){ 
     console.log(request.title); 
    } 
}); 

El problema es que cuando empiezo a escribir para hacer frente a la barra, mi guión contenido se carga en el sitio que es el primero en la lista de autocompletar. Como puede ver en la captura de pantalla siguiente, el script de contenido se carga antes de presionar entrar en la barra de direcciones y se carga en el sitio donde aún no estoy.

No tengo idea de lo que está sucediendo. Por favor, ayúdame.

screenshot

Respuesta

4

Se inyectó la solución de comandos desde la página de fondo.

Ejemplo: obtener de la página de referencia bg

chrome.tabs.executeScript(tabId,{ 
    code: "chrome.extension.sendRequest({action: 'content_refer', url: document.referrer},function(response){});" 
}); 

chrome.extension.onRequest.addListener(function(request,sender,sendResponse){ 
    if(request.action == 'content_refer'){ 
     wipstats.allPages[sender.tab.id].ref = request.url; 
    } 
}); 
0

Creo que se ha activado la opción llamada "navegación instantánea" en Chrome, que tenían el mismo problema hace algún tiempo, y precisamente por esta razón que he deshabilitado y nunca lo usaron más.

+0

pero esto no es útil para mí, porque quiero distribuir mi extensión a los clientes, creo que no puedo desactivar "navegación instantánea" en la máquina cliente :( – tomash

+0

sí, tienes razón, pero no me gusta esta opción de Chrome y creo que esta es una pregunta que Google tiene que resolver, porque los desarrolladores no pueden hacer nada aquí. Tal vez sería bueno no hacerlo. cargando extensiones mientras la navegación instantánea está activada y cárgalas después de que el usuario acceda a Enter, pero de nuevo creo que esto es lo que Google tiene que resolver – haynar

+0

y una cosa más, no sé exactamente, pero tal vez hay algunos eventos DOM específicos de Chrome que son posibles Para atrapar en esta situación y manejar estos casos, esa sería otra buena solución ... – haynar

Cuestiones relacionadas