Element: die Methode getAttribute()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die getAttribute()-Methode des Element-Interfaces gibt den String-Wert des angegebenen Attributs des angegebenen Elements zurück. Sie gibt null zurück, wenn das Element kein Attribut mit dem angegebenen Namen hat.
Wenn Sie die Eigenschaften des Attr-Knotens untersuchen müssen, können Sie stattdessen die Methode getAttributeNode() verwenden.
Syntax
getAttribute(attrName)
Parameter
attrName-
Ein String, der den Namen des Attributs angibt. Wenn es auf einem HTML-Element in einem DOM aufgerufen wird, das als HTML-Dokument gekennzeichnet ist, wird der Name in Kleinbuchstaben normalisiert.
Rückgabewert
Ein String, der den Wert des Attributs enthält, oder null, wenn das Element kein Attribut mit dem angegebenen Namen hat.
Verwendungshinweise
>Dekodierte Zeichenreferenzen in Attributwerten
HTML-Zeichenreferenzen im Quell-Markup eines Attributs (zum Beispiel <, & oder <) werden vom HTML-Parser dekodiert, wenn das Dokument geparst wird, sodass getAttribute() den dekodierten Wert und nicht den ursprünglichen Quellwert zurückgibt.
Gegeben:
<div id="example" data-payload="<b>hi</b>"></div>
ruft document.getElementById("example").getAttribute("data-payload") den String "<b>hi</b>" zurück.
Es ist unsicher, den Rückgabewert von getAttribute() als bereits-escape-HTML zu behandeln. Wenn Sie ein Attribut lesen, das unzuverlässige Daten enthält, und es dann innerHTML zuweisen oder als Markup in das Dokument einfügen, werden alle HTML-Referenzen zur Escape von Sonderzeichen bereits dekodiert, und das Ergebnis kann für Cross-Site Scripting (XSS) ausgenutzt werden.
Verwenden Sie textContent (oder eine andere text-sichere API) für unzuverlässige Daten anstelle von innerHTML.
Abrufen von Nonce-Werten
Aus Sicherheitsgründen sind CSP-Nonces aus Nicht-Skript-Quellen, wie z.B. CSS-Selektoren und .getAttribute("nonce")-Aufrufen, verborgen.
const nonce = script.getAttribute("nonce");
// returns empty string
Anstelle des Abrufs der Nonce aus dem Inhaltsattribut verwenden Sie die
nonce-Eigenschaft:
const nonce = script.nonce;
Beispiele
<!-- example div in an HTML DOC -->
<div id="div1">Hi Champ!</div>
const div1 = document.getElementById("div1");
// <div id="div1">Hi Champ!</div>
const exampleAttr = div1.getAttribute("id");
// "div1"
const lang = div1.getAttribute("lang");
// null
Spezifikationen
| Spezifikation |
|---|
| DOM> # ref-for-dom-element-getattribute①> |