Signatur
Beschreibung
Die Eigenschaft port der Schnittstelle MathMLAnchorElement gibt den Port-Anteil der URL zurück, die im href-Attribut eines MathML-Links (<a> im MathML-Namensraum) steht. Sie verhält sich genauso wie HTMLAnchorElement.port und URL.port: Der Wert ist immer ein String, keine Zahl.
Ist in der URL kein Port angegeben oder entspricht er dem Standardport des Schemas (z. B. 80 bei http:, 443 bei https:), liefert die Eigenschaft einen leeren String. Dasselbe gilt, wenn href fehlt oder keine gültige URL ergibt.
Die Eigenschaft ist auch beschreibbar: Weist man ihr einen Wert zu, wird das href-Attribut entsprechend angepasst. So lassen sich Links in mathematischen Formeln (z. B. auf eine Entwicklungs- oder Staging-Umgebung) umbiegen, ohne die URL manuell zusammenzusetzen. Relative href-Werte werden dabei gegen die Basis-URL des Dokuments aufgelöst.
Rückgabewert
"8080") oder "", wenn kein bzw. der Standardport verwendet wird oder href ungültig ist.Beispiele
Port eines MathML-Links auslesen
const MATHML_NS = "http://www.w3.org/1998/Math/MathML";
const link = document.createElementNS(MATHML_NS, "a");
link.setAttribute("href", "https://mathe.example.com:8443/formeln/pythagoras");
// Funktionsprüfung, da die Unterstützung noch gering ist
if ("port" in link) {
console.log(link.port);
} else {
console.log("MathMLAnchorElement.port nicht unterstützt");
}
Standardport ergibt leeren String
const link = document.createElementNS("http://www.w3.org/1998/Math/MathML", "a");
link.setAttribute("href", "https://example.com:443/seite");
console.log(JSON.stringify(link.port));
link.setAttribute("href", "http://example.com/seite");
console.log(JSON.stringify(link.port));
Alle Formel-Links auf einen lokalen Dev-Server umleiten
const links = document.querySelectorAll("math a[href]");
for (const link of links) {
if (!("port" in link)) continue; // ältere Browser überspringen
link.hostname = "localhost";
link.port = "3000"; // passt href automatisch an
console.log(link.getAttribute("href"));
}
// Wichtig · Fallstricke
- Kompatibilität:
MathMLAnchorElementist ein neues, experimentelles Feature und wird bisher nicht von allen Browsern unterstützt. Vorher mit"port" in elementprüfen oder als Ausweichlösungnew URL(element.getAttribute("href"), document.baseURI).portverwenden. - Der Rückgabewert ist ein String. Zum Rechnen oder Vergleichen mit Zahlen
Number(link.port)verwenden und den leeren String gesondert behandeln. - Standardports (
80/443) werden nie angezeigt – ein leerer String heißt also nicht automatisch „kein Port“. - Das Element muss im MathML-Namensraum erzeugt werden (
createElementNS). Mitdocument.createElement("a")entsteht dagegen einHTMLAnchorElement. - Ungültige Portwerte beim Setzen (z. B.
"abc"oder größer als 65535) werden ignoriert,hrefbleibt dann unverändert.