2012-09-12 18 views
5

Ho problemi con lo sviluppo di estensioni di Chrome.Caricamento di script di contenuto nell'estensione di cromo

devo la trascrizione dei contenuti:

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); 

poi ho una pagina BG:

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

Il problema è che quando si digita per affrontare bar, il mio script contenuto viene caricato sul sito che è il primo nella lista di completamento automatico. Come puoi vedere nello screenshot qui sotto, lo script di contenuto viene caricato prima che tocchi di entrare nella barra degli indirizzi e venga caricato sul sito dove non sono ancora.

Non ho idea di cosa stia succedendo. Per favore, per favore aiutami.

screenshot

risposta

4

La soluzione è uno script iniettato dalla pagina di sfondo.

Esempio: ottenere referrer dal bg pagina

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

Credo che è stata attivata l'opzione "navigazione istantanea" in Chrome, ho avuto lo stesso problema qualche tempo fa, e proprio per questo motivo ho disabilitato che e mai utilizzato più.

+0

ma questo non è utile per me, perché voglio distribuire la mia estensione ai clienti, penso che non riesco a disattivare "la navigazione istantanea" sulla macchina client :( – tomash

+0

sì, hai ragione, ma non mi piace questa opzione di chrome e credo che questa è una domanda che Google deve risolvere, perché gli sviluppatori non possono fare nulla qui, forse sarebbe bello non caricare le estensioni mentre la navigazione istantanea è attiva e caricarle dopo che l'utente ha premuto Invio, ma ancora una volta credo che questo sia ciò che Google deve risolvere – haynar

+0

e un'altra cosa, non lo so esattamente, ma forse ci sono alcuni eventi DOM specifici per Chrome che sono possibili e per cogliere questa situazione e gestire tali casi, questa sarebbe un'altra buona soluzione ... – haynar

Problemi correlati