Vorrei creare un'estensione per Chrome che fornisca un nuovo oggetto all'interno di window
. Quando una pagina web viene visualizzata in un browser con l'estensione caricata, mi piacerebbe che window.mything
sia disponibile tramite Javascript. L'oggetto window.mything
avrà alcune funzioni che definirò nell'estensione e queste funzioni dovrebbero essere richiamabili da console.log
o qualsiasi file Javascript quando la pagina viene visualizzata in un browser con l'estensione abilitata.È possibile modificare l'oggetto finestra da un'estensione di Chrome?
sono stato in grado di iniettare con successo un file JavaScript nella pagina utilizzando un Content Script:
var s = document.createElement("script");
s.src = chrome.extension.getURL("mything.js");
document.getElementsByTagName("head")[0].appendChild(s);
mything.js assomiglia a questo:
window.mything = {thing: true};
console.log(window);
Ogni volta che una pagina viene caricata, vedo il intero oggetto window
come mi aspetto che sia nella console. Tuttavia, non posso interagire con l'oggetto window.mything
dalla console. Sembra che lo script iniettato non abbia realmente modificato l'oggetto globale window
.
Come è possibile modificare l'oggetto globale window
da un'estensione di Chrome?
che è impossibile. Stai visualizzando la console giusta, lo script è realmente eseguito (ispeziona il documento e cerca tag script/controlla gli errori di sintassi)? Lo script funziona sicuramente nel contesto della pagina e, quindi, 'mything' deve essere esistente. –