Signatur
Beschreibung
Die Eigenschaft pathname der Schnittstelle MathMLAnchorElement enthält den Pfad-Teil der URL, auf die ein MathML-Link (<a> innerhalb von <math>) zeigt. Der Wert beginnt mit einem / und endet vor dem Query-String (?…) bzw. dem Fragment (#…). Bei URLs ohne hierarchischen Pfad (z. B. mailto:) kann der Wert auch ohne / sein oder leer bleiben.
Die Eigenschaft funktioniert genauso wie HTMLAnchorElement.pathname. Grundlage ist das href-Attribut, das relativ zur Basis-URL des Dokuments aufgelöst wird. Beim Lesen bekommst du den normalisierten Pfad, Sonderzeichen sind dabei prozent-kodiert (z. B. %20). Beim Schreiben ersetzt du nur den Pfad. Protokoll, Host, Query und Fragment bleiben gleich, und das href-Attribut wird automatisch aktualisiert.
Das ist nützlich, wenn du Links in mathematischen Formeln prüfen oder umschreiben willst, etwa um alle Verweise einer Formelsammlung auf einen neuen Pfad umzustellen oder interne und externe Ziele zu unterscheiden. Einen eigenen URL-Parser brauchst du dafür nicht.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | string | Nur beim Setzen: neuer Pfad. Ein fehlender führender / wird bei hierarchischen URLs automatisch ergänzt. Sonderzeichen werden prozent-kodiert. |
Rückgabewert
"/formeln/pythagoras". Bei ungültigen oder fehlenden href-Werten ist er leer.Beispiele
Pfad eines MathML-Links auslesen
// <math><a href="https://example.com/formeln/pythagoras?v=2#herleitung"><mi>c</mi></a></math>
const link = document.querySelector("math a");
if (link && "pathname" in link) {
console.log(link.pathname);
} else {
// Rückfall für Browser ohne Unterstützung
const url = new URL(link.getAttribute("href"), document.baseURI);
console.log(url.pathname);
}
Alle Formel-Links auf einen neuen Pfad umschreiben
const links = document.querySelectorAll("math a[href]");
for (const link of links) {
if (link.pathname.startsWith("/alt/")) {
// Nur der Pfad ändert sich, Query und Fragment bleiben erhalten
link.pathname = link.pathname.replace("/alt/", "/neu/");
}
}
console.log(links[0]?.getAttribute("href"));
Prozent-Kodierung beim Setzen
const link = document.querySelector("math a");
link.href = "https://example.com/start";
link.pathname = "mathe formeln/ä";
console.log(link.pathname);
console.log(link.href);
// Wichtig · Fallstricke
- Kompatibilität:
MathMLAnchorElementist neu und experimentell. Viele Browser stellen MathML-Links nur als generischesMathMLElementohne URL-Eigenschaften bereit. Prüfe die Unterstützung vorher mit"pathname" in elementund nutze sonstnew URL(el.getAttribute("href"), document.baseURI).pathname. - Der Rückgabewert ist prozent-kodiert. Wenn du ihn anzeigen willst, dekodiere ihn mit
decodeURIComponent(). - Query-String und Fragment gehören nicht dazu. Dafür gibt es
searchundhash. - Bei URLs ohne Pfad-Hierarchie (z. B.
mailto:,data:) gibt es keinen führenden/, und das Setzen bewirkt nichts. - Ohne gültiges
hrefist der Wert ein leerer String, und das Setzen wird ignoriert.