HTMLScriptElement
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
HTML-<script>-Elemente geben die HTMLScriptElement-Schnittstelle frei, die spezielle Eigenschaften und Methoden zum Manipulieren des Verhaltens und der Ausführung von <script>-Elementen bietet (über die geerbte HTMLElement-Schnittstelle hinaus).
JavaScript-Dateien sollten mit dem text/javascript-MIME-Typ bereitgestellt werden, aber Browser sind nachsichtig und blockieren sie nur, wenn das Skript mit einem Bildtyp (image/*), Videotyp (video/*), Audiotyp (audio/*) oder text/csv geliefert wird. Wenn das Skript blockiert wird, erhält das Element ein error-Ereignis; andernfalls erhält es ein load-Ereignis.
Hinweis:
Wenn <script>-Elemente mit der Document.write()-Methode eingefügt werden, werden sie (typischerweise synchron) ausgeführt, aber wenn sie mit Element.innerHTML oder Element.outerHTML eingefügt werden, werden sie überhaupt nicht ausgeführt.
Instanz-Eigenschaften
Erbt Eigenschaften von seinem Elternteil, HTMLElement.
HTMLScriptElement.attributionSrcSicherer Kontext Experimentell-
Ruft das
attributionsrc-Attribut eines<script>-Elements programmgesteuert ab und setzt es auch.attributionsrcgibt an, dass der Browser einenAttribution-Reporting-Eligible-Header zusammen mit der Skriptressourcenanforderung senden soll. Serverseitig wird dies verwendet, um das Senden einesAttribution-Reporting-Register-Source- oderAttribution-Reporting-Register-Trigger-Headers in der Antwort auszulösen, um eine JavaScript-basierte Attributionsquelle oder einen Attributionstrigger zu registrieren. HTMLScriptElement.async-
Ein boolescher Wert, der steuert, wie das Skript ausgeführt werden soll. Für klassische Skripte, wenn die
async-Eigenschaft auftruegesetzt ist, wird das externe Skript parallel zum Parsen abgerufen und ausgewertet, sobald es verfügbar ist. Für Modulscripte, wenn dieasync-Eigenschaft auftruegesetzt ist, werden das Skript und alle seine Abhängigkeiten parallel zum Parsen abgerufen und ausgewertet, sobald sie verfügbar sind. HTMLScriptElement.blocking-
Ein String, der angibt, dass bestimmte Operationen beim Abrufen des Skripts blockiert werden sollen. Es spiegelt das
blocking-Attribut des<script>-Elements wider. HTMLScriptElement.charsetVeraltet-
Ein String, der die Zeichencodierung eines externen Skripts darstellt. Es spiegelt das
charset-Attribut wider. HTMLScriptElement.crossOrigin-
Ein String, der die CORS-Einstellung für das Skriptelement widerspiegelt. Für klassische Skripte von anderen Ursprüngen steuert dies, ob Fehlerinformationen offengelegt werden.
HTMLScriptElement.defer-
Ein boolescher Wert, der steuert, wie das Skript ausgeführt werden soll. Für klassische Skripte, wenn die
defer-Eigenschaft auftruegesetzt ist, wird das externe Skript ausgeführt, nachdem das Dokument geparst wurde, aber bevor dasDOMContentLoaded-Ereignis ausgelöst wird. Für Modulscripte hat diedefer-Eigenschaft keine Wirkung. HTMLScriptElement.eventVeraltet-
Ein String; eine veraltete Methode zum Registrieren von Ereignishandlern für Elemente in einem HTML-Dokument.
HTMLScriptElement.fetchPriority-
Ein optionaler String, der dem Browser einen Hinweis gibt, wie das Abrufen eines externen Skripts im Vergleich zu anderen externen Skripten priorisiert werden soll. Wenn dieser Wert angegeben wird, muss er einer der möglichen zulässigen Werte sein:
high, um mit hoher Priorität abzurufen,low, um mit niedriger Priorität abzurufen, oderauto, um keine Präferenz anzugeben (was der Standard ist). Es widerspiegelt dasfetchpriority-Attribut des<script>-Elements. HTMLScriptElement.innerText-
Eine Eigenschaft, die den eingebetteten Textinhalt des
<script>-Elements darstellt, als ob es gerenderter Text wäre. Die Eigenschaft akzeptiert entweder einTrustedScript-Objekt oder einen String. HTMLScriptElement.integrity-
Ein String, der Metadaten enthält, die ein Browser verwenden kann, um zu überprüfen, ob eine abgerufene Ressource ohne unerwartete Manipulation geliefert wurde. Es spiegelt das
integrity-Attribut des<script>-Elements wider. HTMLScriptElement.noModule-
Ein boolescher Wert, der, wenn er auf true gesetzt ist, die Ausführung des Skripts in Browsern stoppt, die ES-Module unterstützen — wird verwendet, um Fallback-Skripte in älteren Browsern auszuführen, die JavaScript-Module nicht unterstützen.
HTMLScriptElement.referrerPolicy-
Ein String, der das
referrerPolicy-HTML-Attribut widerspiegelt, das angibt, welchen Referrer beim Abrufen des Skripts und bei Abrufen, die durch dieses Skript vorgenommen werden, verwendet werden soll. HTMLScriptElement.src-
Ein String, der die URL eines externen Skripts darstellt; dies kann verwendet werden als Alternative zum direkten Einbetten eines Skripts in ein Dokument. Es spiegelt das
src-Attribut des<script>-Elements wider. HTMLScriptElement.text-
Eine Eigenschaft, die den eingebetteten Textinhalt des
<script>-Elements darstellt. Die Eigenschaft akzeptiert entweder einTrustedScript-Objekt oder einen String. Sie verhält sich genauso wie die textContent-Eigenschaft. HTMLScriptElement.textContent-
Eine Eigenschaft, die den eingebetteten Textinhalt des
<script>-Elements darstellt. Die Eigenschaft ist vonNodeneu definiert, umTrustedScriptals Eingabe zu unterstützen. Auf diesem Element verhält sie sich exakt wie die text-Eigenschaft. HTMLScriptElement.type-
Ein String, der den Typ des Skripts darstellt. Es widerspiegelt das
type-Attribut des<script>-Elements.
Statische Methoden
HTMLScriptElement.supports()-
Gibt
truezurück, wenn der Browser Skripte des angegebenen Typs unterstützt, undfalseandernfalls. Diese Methode bietet eine einfache und einheitliche Methode zur Skript-bezogenen Funktionalitätsprüfung.
Instanzmethoden
Keine spezifischen Methoden; erbt Methoden von seinem Elternteil, HTMLElement.
Ereignisse
Keine spezifischen Ereignisse; erbt Ereignisse von seinem Elternteil, HTMLElement.
Beispiele
>Dynamisches Importieren von Skripten
Erstellen wir eine Funktion, die neue Skripte in ein Dokument importiert, indem ein <script>-Knoten unmittelbar vor dem <script>, das den folgenden Code enthält, erstellt wird (über document.currentScript).
Diese Skripte werden asynchron ausgeführt.
Für weitere Details siehe die defer- und async-Eigenschaften.
function loadError(oError) {
throw new URIError(`The script ${oError.target.src} didn't load correctly.`);
}
function prefixScript(url, onloadFunction) {
const newScript = document.createElement("script");
newScript.onerror = loadError;
if (onloadFunction) {
newScript.onload = onloadFunction;
}
document.currentScript.parentNode.insertBefore(
newScript,
document.currentScript,
);
newScript.src = url;
}
Diese nächste Funktion fügt die neuen Skripte, anstatt sie unmittelbar vor dem document.currentScript-Element einzufügen, als Kinder des <head>-Tags an.
function loadError(oError) {
throw new URIError(`The script ${oError.target.src} didn't load correctly.`);
}
function affixScriptToHead(url, onloadFunction) {
const newScript = document.createElement("script");
newScript.onerror = loadError;
if (onloadFunction) {
newScript.onload = onloadFunction;
}
document.head.appendChild(newScript);
newScript.src = url;
}
Beispielverwendung:
affixScriptToHead("myScript1.js");
affixScriptToHead("myScript2.js", () => {
alert('The script "myScript2.js" has been correctly loaded.');
});
Überprüfen, ob ein Skripttyp unterstützt wird
HTMLScriptElement.supports() bietet einen einheitlichen Mechanismus zum Überprüfen, ob ein Browser bestimmte Skripttypen unterstützt.
Das folgende Beispiel zeigt, wie auf Modulunterstützung geprüft wird, indem die Existenz des noModule-Attributs als Fallback verwendet wird.
function checkModuleSupport() {
if ("supports" in HTMLScriptElement) {
return HTMLScriptElement.supports("module");
}
return "noModule" in document.createElement("script");
}
Es wird angenommen, dass klassische Skripte in allen Browsern unterstützt werden.
Spezifikationen
| Specification |
|---|
| HTML> # htmlscriptelement> |
Browser-Kompatibilität
Loading…
Siehe auch
- HTML
<script>-Element - HTML
<noscript>-Element document.currentScript- Web Workers (Code-Snippets ähnlich Skripten, aber in einem anderen globalen Kontext ausgeführt)