Start · Sprachen · JavaScript · Referenz · MathMLAnchorElement.pathname

MathMLAnchorElement.pathname

Eigenschaft

Gibt den Pfad-Teil der verlinkten URL eines MathML-Ankers zurück oder setzt ihn: ein führendes <code>/</code> plus Pfad, ohne Query-String und Fragment.

seit JavaScript Experimentell: eingeschränkte Browser-Unterstützun Kategorie: webapi

Signatur

MathMLAnchorElement.pathname

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

Typ
string
Beschreibung
Der Pfad der aufgelösten Link-URL, z. B. "/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);
}
/formeln/pythagoras

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"));
https://example.com/neu/integral?lang=de#beispiel

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);
/mathe%20formeln/%C3%A4 https://example.com/mathe%20formeln/%C3%A4

// Wichtig · Fallstricke

  • Kompatibilität: MathMLAnchorElement ist neu und experimentell. Viele Browser stellen MathML-Links nur als generisches MathMLElement ohne URL-Eigenschaften bereit. Prüfe die Unterstützung vorher mit "pathname" in element und nutze sonst new 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 search und hash.
  • Bei URLs ohne Pfad-Hierarchie (z. B. mailto:, data:) gibt es keinen führenden /, und das Setzen bewirkt nichts.
  • Ohne gültiges href ist der Wert ein leerer String, und das Setzen wird ignoriert.