Signatur
Beschreibung
Die Eigenschaft search von SVGAElement liefert den Query-String der URL, auf die ein SVG-Link (<a> innerhalb eines <svg>) verweist. Der Wert beginnt mit einem Fragezeichen (?), gefolgt von den Parametern, z. B. "?id=42&lang=de". Enthält die URL keinen Abfrageteil, ist der Wert ein leerer String.
Die Eigenschaft stammt aus dem Mixin HTMLHyperlinkElementUtils, das SVG 2 auch für SVGAElement vorsieht. Damit verhält sie sich wie HTMLAnchorElement.search: Die URL wird aus dem Attribut href (bzw. dem veralteten xlink:href) gegen die Basis-URL des Dokuments aufgelöst.
Beim Schreiben wird nur der Abfrageteil der URL ersetzt und das href-Attribut entsprechend aktualisiert; ein fehlendes ? wird automatisch ergänzt. Das ist praktisch, um z. B. in interaktiven Diagrammen oder Karten Tracking- oder Filterparameter an Links anzuhängen, ohne die URL manuell zusammenzubauen. Für komfortable Bearbeitung einzelner Parameter kombiniert man den Wert am besten mit URLSearchParams.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $wert (Setter) | string | Neuer Query-String. Ein führendes ? ist optional; ein leerer String entfernt den Abfrageteil. |
Rückgabewert
? oder "", wenn keiner vorhanden ist bzw. die URL ungültig ist.Beispiele
Query-String eines SVG-Links auslesen
// <svg><a id="link" href="https://example.com/produkte?kategorie=lampen&seite=2"><text y="20">Lampen</text></a></svg>
const link = document.querySelector('svg a#link');
if ('search' in link) {
console.log(link.search);
} else {
// Fallback: href-Attribut selbst parsen
const url = new URL(link.getAttribute('href'), document.baseURI);
console.log(url.search);
}
Parameter mit URLSearchParams auswerten
const link = document.querySelector('svg a#link');
const params = new URLSearchParams(link.search);
console.log(params.get('kategorie'));
console.log(Number(params.get('seite')));
Tracking-Parameter an alle Links eines Diagramms anhängen
const svgLinks = document.querySelectorAll('#diagramm a');
svgLinks.forEach((a) => {
if (!('search' in a)) return; // Browser ohne Unterstützung überspringen
const params = new URLSearchParams(a.search);
params.set('utm_source', 'diagramm');
a.search = params.toString(); // '?' wird automatisch ergänzt
console.log(a.getAttribute('href'));
});
// Wichtig · Fallstricke
- Browser-Unterstützung: Die URL-Zerlegungs-Eigenschaften (
search,host,pathname…) vonSVGAElementwerden nicht von allen Browsern unterstützt. Prüfe vorher mit'search' in elementund nutze als Fallbacknew URL(element.getAttribute('href'), document.baseURI).search. SVGAElement.hrefist einSVGAnimatedStringund kein String – für den URL-Text alsoelement.href.baseValodergetAttribute('href')verwenden.- Der Rückgabewert ist prozentkodiert; zum Auswerten einzelner Parameter
URLSearchParamsstatt eigener String-Zerlegung nutzen. - Das Setzen von
searchändert dashref-Attribut; ein zuvor verwendetesxlink:hrefkann dabei je nach Browser unberührt bleiben. Für neuen Code nur nochhrefverwenden. - Beim Einfügen von Werten aus Nutzereingaben keine URLs mit
javascript:-Schema inhrefzulassen (XSS-Risiko).