refresh date: 2026-09-25 robots: noindex
Beschrijving
Gebruik de chrome.devtools.inspectedWindow API om te communiceren met het geïnspecteerde venster: verkrijg de tabblad-ID voor de geïnspecteerde pagina, evalueer de code in de context van het geïnspecteerde venster, laad de pagina opnieuw of verkrijg de lijst met bronnen op de pagina.
Manifest
De volgende sleutels moeten in het manifest worden gedefinieerd om deze API te gebruiken.
"devtools_page"Gebruik chrome.devtools.inspectedWindow om te communiceren met het geïnspecteerde venster: verkrijg de tabblad-ID voor de geïnspecteerde pagina, evalueer de code in de context van het geïnspecteerde venster, laad de pagina opnieuw of verkrijg de lijst met bronnen op de pagina.
Ga naar Overzicht van DevTools API's voor een algemene inleiding over het gebruik van API's voor ontwikkelaarstools.
Overzicht
De property tabId biedt de tabblad-ID die je kunt gebruiken met de API-aanroepen chrome.tabs.*. De chrome.tabs.* API wordt om veiligheidsredenen niet getoond op de pagina's van de extensie Tools voor ontwikkelaars. Je moet de tabblad-ID doorgeven aan de achtergrondpagina en de chrome.tabs.* API-functies vanaf daar aanroepen.
De methode reload kan worden gebruikt om de geïnspecteerde pagina opnieuw te laden. Daarnaast kan de beller een overschrijving opgeven voor de user-agent-tekenreeks, een script dat vroeg wordt geïnjecteerd wanneer de pagina wordt geladen of een optie om het opnieuw laden van gecachte bronnen af te dwingen.
Gebruik de aanroep getResources en de gebeurtenis onResourceContent om de lijst met bronnen (documenten, stylesheets, scripts, afbeeldingen, enzovoort) op de geïnspecteerde pagina op te halen. De methoden getContent en setContent van de klasse Resource en de gebeurtenis onResourceContentCommitted kunnen worden gebruikt om wijziging van de broncontent te ondersteunen, bijvoorbeeld door een externe editor.
Code uitvoeren in het geïnspecteerde venster
De methode eval biedt extensies de mogelijkheid om JavaScript-code uit te voeren in de context van de geïnspecteerde pagina. Deze methode is krachtig als je deze in de juiste context gebruikt en gevaarlijk als je deze onjuist gebruikt. Gebruik de methode tabs.executeScript, tenzij u de specifieke functionaliteit nodig heeft die de methode eval biedt.
Dit zijn de belangrijkste verschillen tussen de methoden eval en tabs.executeScript:
- De methode
evalgebruikt geen geïsoleerde wereld voor de code die wordt geëvalueerd, dus de JavaScript-status van het geïnspecteerde venster is toegankelijk voor de code. Gebruik deze methode als toegang tot de JavaScript-status van de geïnspecteerde pagina is vereist. - De uitvoeringscontext van de code die wordt geëvalueerd, omvat de API voor de console voor tools voor ontwikkelaars.
De code kan bijvoorbeeld
inspecten$0gebruiken. - De geëvalueerde code kan een waarde retourneren die wordt doorgegeven aan de callback van de extensie. De geretourneerde waarde moet een geldig JSON-object zijn (het mag alleen primitieve JavaScript-typen en acyclische verwijzingen naar andere JSON-objecten bevatten). Wees extra voorzichtig bij de verwerking van de gegevens die je ontvangt van de geïnspecteerde pagina. De uitvoeringscontext wordt in wezen beheerd door de geïnspecteerde pagina. Een schadelijke pagina kan van invloed zijn op de gegevens die worden teruggestuurd naar de extensie.
Een pagina kan meerdere verschillende JavaScript-uitvoeringscontexten bevatten. Elk frame heeft een eigen context, plus een extra context voor elke extensie met contentscripts die in dat frame worden uitgevoerd.
De methode eval wordt standaard uitgevoerd in de context van het hoofdframe van de geïnspecteerde pagina.
De methode eval heeft een optioneel tweede argument dat je kunt gebruiken om de context aan te geven waarin de code wordt geëvalueerd. Dit options-object kan een of meer van de volgende sleutels bevatten:
frameURL- Gebruik dit om een ander frame op te geven dan het hoofdframe van de geïnspecteerde pagina.
contextSecurityOrigin- Gebruik dit om een context binnen het opgegeven frame te selecteren op basis van de web-oorsprong.
useContentScriptContext- Als dit waar is, wordt het script uitgevoerd in dezelfde context als de contentscripts van de extensie. (Dit is hetzelfde als de eigen weboorsprong van de extensie opgeven als de beveiligingsoorsprong van de context.) Dit kan worden gebruikt om gegevens uit te wisselen met het contentscript.
Voorbeelden
De volgende code controleert de versie van jQuery die wordt gebruikt door de geïnspecteerde pagina:
chrome.devtools.inspectedWindow.eval(
"jQuery.fn.jquery",
function(result, isException) {
if (isException) {
console.log("the page is not using jQuery");
} else {
console.log("The page is using jQuery v" + result);
}
}
);
Als je deze API wilt proberen, installeer je de API-voorbeelden voor devtools uit de repository chrome-extension-samples.
Typen
Resource
Een bron op de geïnspecteerde pagina, zoals een document, een script of een afbeelding.
Eigenschappen
-
url
tekenreeks
De URL van de bron.
-
getContent
ongeldig
PromiseHaalt de content van de bron op.
De functie
getContentziet er zo uit:(callback?: function) => {...}
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(response: object) => void
-
reactie
object
Chrome 151+Een object met de broncontent en de codering ervan.
-
content
tekenreeks
Content van de bron (mogelijk gecodeerd).
-
codering
tekenreeks
Leeg als de content niet is gecodeerd, anders de naam van de codering. Op dit moment wordt alleen base64 ondersteund.
-
-
-
returns
Promise<object>
Chrome 151+Een functie die resourcecontent krijgt als het verzoek is afgerond.
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
-
-
setContent
ongeldig
PromiseStelt de content van de bron in.
De functie
setContentziet er zo uit:(content: string, commit: boolean, callback?: function) => {...}
-
content
tekenreeks
Nieuwe content van de bron. Alleen bronnen met het teksttype worden op dit moment ondersteund.
-
toewijzen
booleaans
Waar als de gebruiker klaar is met het bewerken van de bron en de nieuwe content van de bron moet worden bewaard. Onwaar als dit een kleine wijziging is die is gestuurd terwijl de gebruiker de bron bewerkt.
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(error?: object) => void
-
fout
object optioneel
Ingesteld op niet gedefinieerd als de resourcecontent is ingesteld. Anders wordt de fout beschreven.
-
-
returns
Promise<object>
Chrome 151+Een functie die wordt aangeroepen als het verzoek is afgerond.
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
-
Eigenschappen
tabId
De ID van het tabblad dat wordt geïnspecteerd. Deze ID kan worden gebruikt met chrome.tabs.* API.
Type
getal
Methoden
eval()
chrome.devtools.inspectedWindow.eval(
expression: string,
options?: object,
callback?: function,
): Promise<object>
Evalueert een JavaScript-expressie in de context van het hoofdframe van de geïnspecteerde pagina. De expressie moet resulteren in een json-compatibel object, anders wordt er een uitzondering gegenereerd. De eval-functie kan een fout aan de DevTools-zijde of een JavaScript-uitzondering melden die optreedt tijdens de evaluatie. In beide gevallen is de parameter result van de callback undefined. In het geval van een fout aan de DevTools-kant is de parameter isException niet-null en is isError ingesteld op true en code ingesteld op een foutcode. In het geval van een JavaScript-fout wordt isException ingesteld op true en value op de tekenreekswaarde van het gegenereerde object.
Parameters
-
expressie
tekenreeks
Een expressie die u wilt evalueren.
-
opties
object optioneel
De parameter options kan een of meer opties bevatten.
-
frameURL
tekenreeks optioneel
Als je dit opgeeft, wordt de expressie geëvalueerd in het iframe waarvan de URL overeenkomt met de opgegeven URL. De expressie wordt standaard geëvalueerd in het bovenste frame van de geïnspecteerde pagina.
-
scriptExecutionContext
tekenreeks optioneel
Chrome 107 of hogerEvalueer de expressie in de context van een contentscript van een extensie die overeenkomt met de opgegeven oorsprong. Als deze parameter wordt opgegeven, overschrijft scriptExecutionContext de instelling 'true' voor useContentScriptContext.
-
useContentScriptContext
booleaans optioneel
Evalueer de expressie in de context van het contentscript van de aanroepende extensie, op voorwaarde dat het contentscript al is geïnjecteerd in de geïnspecteerde pagina. Als dat niet het geval is, wordt de expressie niet geëvalueerd en wordt de callback aangeroepen met de uitzonderingsparameter ingesteld op een object waarvan het veld
isErroris ingesteld op true en het veldcodeis ingesteld opE_NOTFOUND.
-
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(response: object) => void
-
reactie
object
Chrome 151+Het resultaat van de evaluatie en uitzonderingsinformatie.
-
exceptionInfo
object
Een object met details als er een uitzondering is opgetreden tijdens de evaluatie van de expressie.
-
code
tekenreeks
Ingesteld als de fout is opgetreden aan de DevTools-kant voordat de expressie wordt geëvalueerd.
-
beschrijving
tekenreeks
Ingesteld als de fout is opgetreden aan de DevTools-kant voordat de expressie wordt geëvalueerd.
-
details
any[]
Ingesteld als de fout is opgetreden aan de DevTools-kant voordat de expressie is geëvalueerd. Bevat de matrix van de waarden die kunnen worden vervangen in de beschrijvingstekenreeks om meer informatie te geven over de oorzaak van de fout.
-
isError
booleaans
Ingesteld als de fout is opgetreden aan de DevTools-kant voordat de expressie is geëvalueerd.
-
isException
booleaans
Ingesteld als de geëvalueerde code een onverwerkte uitzondering oplevert.
-
waarde
tekenreeks
Ingesteld als de geëvalueerde code een onverwerkte uitzondering oplevert.
-
-
resultaat
object
Het resultaat van de evaluatie.
-
-
Retourzendingen
-
Promise<object>
Chrome 151+Een functie die wordt aangeroepen als de evaluatie is afgerond.
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getResources()
chrome.devtools.inspectedWindow.getResources(
callback?: function,
): Promise<Resource[]>
Haalt de lijst met bronnen op van de geïnspecteerde pagina.
Parameters
Retourzendingen
-
Promise<Resource[]>
Chrome 151+Een functie die de lijst met bronnen ontvangt wanneer het verzoek is afgerond.
Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
reload()
chrome.devtools.inspectedWindow.reload(
reloadOptions?: object,
): void
Laadt de geïnspecteerde pagina opnieuw.
Parameters
-
reloadOptions
object optioneel
-
ignoreCache
booleaans optioneel
Als deze waarde True is, slaat het laadprogramma het cachegeheugen over voor alle geïnspecteerde paginabronnen die worden geladen voordat de gebeurtenis
loadwordt geactiveerd. Het effect is vergelijkbaar met het indrukken van Ctrl+Shift+R in het geïnspecteerde venster of in het venster Hulpprogramma's voor ontwikkelaars. -
injectedScript
tekenreeks optioneel
Als dit is opgegeven, wordt het script onmiddellijk na het laden in elk frame van de geïnspecteerde pagina geïnjecteerd, vóór de scripts van het frame. Het script wordt niet geïnjecteerd na volgende herlaadbeurten, bijvoorbeeld als de gebruiker op Ctrl+R drukt.
-
userAgent
tekenreeks optioneel
Als je een tekenreeks invoert, overschrijft deze de waarde van de HTTP-header
User-Agentdie wordt gestuurd terwijl de bronnen van de geïnspecteerde pagina worden geladen. De tekenreeks overschrijft ook de waarde van de propertynavigator.userAgentdie wordt geretourneerd naar scripts die worden uitgevoerd op de geïnspecteerde pagina.
-
Evenementen
onResourceAdded
chrome.devtools.inspectedWindow.onResourceAdded.addListener(
callback: function,
)
Wordt geactiveerd als er een nieuwe bron wordt toegevoegd aan de geïnspecteerde pagina.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(resource: Resource) => void
-
resource
-
onResourceContentCommitted
chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
callback: function,
)
Wordt geactiveerd als een nieuwe revisie van de bron wordt vastgelegd (bijvoorbeeld als de gebruiker een bewerkte versie van de bron opslaat in de Tools voor ontwikkelaars).