Ereignis script.realmCreated
Das Ereignis script.realmCreated des Moduls script wird ausgelöst, wenn ein neuer Realm für ein Dokument, einen Worker oder ein Worklet erstellt wird.
Ereignisdaten
Das Feld params in der Ereignisbenachrichtigung ist ein Objekt, das je nach Wert des Feldes type die folgenden Felder enthalten kann:
contextOptional-
Ein String mit der ID des Kontexts, zu dem der Realm gehört. Dieses Feld ist nur enthalten, wenn das Feld
typeden Wert"window"hat. origin-
Ein String mit dem Origin des Realms.
ownersOptional-
Ein Array mit einem einzigen Element, das die ID des Realms enthält, dem der Worker gehört. Dieses Feld ist nur enthalten, wenn das Feld
typeden Wert"dedicated-worker"hat. realm-
Ein String mit der ID des Realms. Übergeben Sie diesen Wert als Feld
realmdes Parameterstargetbei Befehlen wiescript.evaluate. sandboxOptional-
Ein String mit dem Namen des Sandbox-Realms. Dieses Feld ist nur bei einem Sandbox-Realm enthalten, dessen Typ
"window"ist. type-
Ein String, der den Typ des Realms angibt. Er hat einen der folgenden Werte:
"window": Ein Realm, dessen globales Objekt einWindowist. Dazu gehören auch Sandbox-Realms."worker": Ein Realm, dessen globales Objekt einWorkerGlobalScopeist, jedoch keiner der spezifischeren globalen Scopes für Dedicated Worker, Shared Worker oder Service Worker."dedicated-worker": Ein Realm, dessen globales Objekt einDedicatedWorkerGlobalScopeist."shared-worker": Ein Realm, dessen globales Objekt einSharedWorkerGlobalScopeist."service-worker": Ein Realm, dessen globales Objekt einServiceWorkerGlobalScopeist."worklet": Ein Realm, dessen globales Objekt einWorkletGlobalScopeist, jedoch keiner der spezifischeren globalen Scopes für Audio- oder Paint-Worklets."audio-worklet": Ein Realm, dessen globales Objekt einAudioWorkletGlobalScopeist."paint-worklet": Ein Realm, dessen globales Objekt einPaintWorkletGlobalScopeist.
Beschreibung
Verwenden Sie dieses Ereignis zusammen mit script.realmDestroyed, um die Lebensdauer von JavaScript-Realms zu überwachen.
Wenn Sie dieses Ereignis abonnieren, sendet der Browser zunächst für jeden bereits vorhandenen Realm, der bereit ist, Skripte auszuführen, ein script.realmCreated-Ereignis. Anschließend sendet er weitere Ereignisse, wenn neue Realms erstellt werden.
Sie müssen daher script.getRealms nicht aufrufen, um die Realms zu ermitteln, die bereits vor dem Abonnieren vorhanden waren.
Bei einer Navigation zu einem anderen Dokument wird ein neuer Realm für das Dokument erstellt. Daher erhalten Sie ein neues Ereignis mit einer neuen Realm-ID. Die Realm-ID aus der Zeit vor der Navigation ist nicht mehr gültig.
Beispiele
>Ein Ereignis beim Laden eines Dokuments empfangen
Angenommen, Sie verfügen über eine WebDriver-BiDi-Verbindung und eine aktive Sitzung, in der script.realmCreated abonniert ist.
Wenn beim Abonnieren bereits Realms vorhanden sind, erhalten Sie zuerst für jeden dieser Realms ein Ereignis.
Wenn anschließend ein Tab ein Dokument unter https://example.com lädt, sendet der Browser die folgende Benachrichtigung:
{
"type": "event",
"method": "script.realmCreated",
"params": {
"context": "93ee5bd6-d256-4608-a002-9a8995cc0e5f",
"origin": "https://example.com",
"realm": "7c37f4c0-abcd-1234-ef56-789012345678",
"type": "window"
}
}
Ein Ereignis beim Starten eines Workers empfangen
Angenommen, die Seite startet mit derselben Verbindung und Sitzung wie im vorherigen Beispiel einen Dedicated Worker.
Der Browser sendet die folgende Benachrichtigung. Sie enthält kein Feld context, da ein Worker-Realm keinem Kontext angehört.
Stattdessen enthält owners die ID des Realms, dem der Worker gehört:
{
"type": "event",
"method": "script.realmCreated",
"params": {
"origin": "https://example.com",
"owners": ["7c37f4c0-abcd-1234-ef56-789012345678"],
"realm": "a1b2c3d4-e5f6-4708-9a1b-2c3d4e5f6071",
"type": "dedicated-worker"
}
}
Spezifikationen
| Spezifikation |
|---|
| WebDriver BiDi> # event-script-realmCreated> |
Browser-Kompatibilität
Siehe auch
- Befehl
script.callFunction - Befehl
script.evaluate - Befehl
script.getRealms - Ereignis
script.realmDestroyed - Befehl
session.subscribe