2016-03-29 6 views
5

A volte durante il sovraccarico alcuni siti non vengono caricati.Visualizzazione di un avviso quando il sito non viene caricato completamente

Sono in grado di rilevare questo errore utilizzando chrome.webRequest.onErrorOccurred api.

Suppongo che lo script di contenuto non verrà eseguito affatto in questo caso, quindi l'invio di messaggi dalla pagina di sfondo allo script di contenuto non è di alcuna utilità.

Come posso incollare un avviso nel corpo del sito che non è stato caricato correttamente?

Forse l'utilizzo dello script viene eseguito dalla pagina di sfondo? La pagina avrà un contenuto corporeo?

+0

Avete dato un'occhiata a [chrome.webRequest.onErrorOccurred] (https://developer.chrome.com/extensions/webRequest#event-onErrorOccurred)? – dan

+0

@ dan75 No, non ho – user5858

+0

per impostazione predefinita, verrà attivato ogni volta che si verifica un errore su qualsiasi richiesta (documento, foglio di stile, immagine, ecc.). Tuttavia, se lo si utilizza con un [filtro del tipo di risorsa] (https://developer.chrome.com/extensions/webRequest#type-ResourceType), è possibile filtrare per determinati tipi di richieste. – dan

risposta

0

Hai alcune opzioni qui. Se stai utilizzando chrome.webRequest.onErrorOccurred() anche se ti suggerisco di reindirizzare la scheda a una pagina di errore quando si verifica un errore, utilizzando chrome.tabs.update().

Ad esempio:

chrome.webRequest.onErrorOccurred.addListener(function(details) 
{  
    chrome.tabs.update(details.tabId, {url: "URL FOR AN ERROR PAGE"}); 
}, 
{types: ["main_frame"]}); 

Questo devierà la scheda verificato l'errore quando una richiesta web con un resourceType di errori main_frame.

Ci sono alcune cose che devi considerare qui. Vuoi solo catturare errori dalle richieste con un tipo di main_frame? In caso contrario, rimuovi il filtro "tipi" dall'evento.

L'altra cosa che devi considerare è a quale pagina stai reindirizzando. Puoi impacchettare un file HTML all'interno della tua estensione e poi reindirizzare a quello. Per generare l'URL della tua pagina di errore puoi eseguire chrome.extension.getURL('customerrorpage.html').