U moet de functionaliteit op uw achtergrondpagina instellen zodat deze op alle tabbladen werkt.
// add listener for all tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
var safesite = false;
if (changeInfo === "loading") {
//logic for checking white list, using tab.url
if (!safesite) {
chrome.tabs.update(tabId, { url: 'www.google.com' });
}
}
});
In wezen voeg je een gebeurtenislistener toe aan alle tabbladen. Wanneer het wordt geladen, controleert u om te zien of het op de witte lijst staat. Als het een op de zwarte lijst vermelde site is, leidt u deze om naar elke gewenste URL. U kunt ook een .html-bestand opnemen in de extensiemap om ze opnieuw te richten. Dit vuurt op alle tabbladen, inclusief de Web Inspector, dus misschien wilt u wat logica gebruiken om alleen HTTP-verzoeken te controleren.
Ook kan deze benadering de pagina met de zwarte lijst kort weergeven en vervolgens doorverwijzen naar de pagina blocked_url.html. De experimentele API, webRequest , moet de mogelijkheid bieden om het verzoek VOORAF TE filteren de pagina laden, maar u kunt deze niet uploaden naar de Chrome Web Store totdat deze onderdeel wordt van de officiële Chrome-API. Als het voor persoonlijk gebruik is, voel je dan vrij om het te gebruiken.
Nog een laatste tip voor ontwikkeling: je kunt alleen de achtergrond html zuiveren via de instellingenpagina Extensies (chrome://settings/extensionSettings). Open de drilldown-down voor uw extensie en u ziet 'Actieve weergaven inspecteren:' waar u kunt klikken op een koppeling naar elke extensie-specifieke pagina die u momenteel gebruikt. Als u dit doet, wordt de Web Inspector voor die pagina weergegeven.
Na veel krabben, kwam ik dat per ongeluk tegen en het is sindsdien levensreddend geweest.