Signatur
Beschreibung
Die Eigenschaft target der Schnittstelle MathMLAnchorElement spiegelt das HTML-Inhaltsattribut target eines <a>-Elements wider, das im MathML-Namensraum (http://www.w3.org/1998/Math/MathML) liegt. Sie gibt den Navigationskontext an, in dem das Linkziel geöffnet wird: im selben Tab, in einem neuen Tab bzw. Fenster, im übergeordneten Frame oder in einem benannten Fenster oder <iframe>.
Gängige Werte sind _self (Standard, aktueller Kontext), _blank (neuer Kontext), _parent (übergeordneter Kontext), _top (oberster Kontext) sowie ein beliebiger Name eines Fensters oder Frames. Ist das Attribut nicht gesetzt, liefert die Eigenschaft einen leeren String.
Gebraucht wird die Eigenschaft vor allem, wenn mathematische Formeln dynamisch erzeugt werden und einzelne Teile davon verlinkt sein sollen, etwa ein Symbol, das zu einer Definition oder zu einem Glossar führt. Die Eigenschaft funktioniert wie HTMLAnchorElement.target, gilt aber für Links innerhalb von <math>.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | string | "" | Beim Setzen: der neue Zielkontext, z. B. "_blank", "_self", "_parent", "_top" oder ein Fenster- bzw. Frame-Name. Der Wert wird ins Attribut target geschrieben. |
Rückgabewert
target oder "", wenn keines gesetzt ist.Beispiele
Ziel eines vorhandenen MathML-Links auslesen
// <math><a id="pi-link" href="/glossar/pi" target="_blank"><mi>π</mi></a></math>
const link = document.getElementById("pi-link");
if (typeof MathMLAnchorElement !== "undefined" && link instanceof MathMLAnchorElement) {
console.log(link.target);
} else {
// Rückfall: Attribut direkt lesen
console.log(link.getAttribute("target"));
}
Verlinktes Symbol dynamisch erzeugen
const MATHML_NS = "http://www.w3.org/1998/Math/MathML";
const math = document.createElementNS(MATHML_NS, "math");
const a = document.createElementNS(MATHML_NS, "a");
const mi = document.createElementNS(MATHML_NS, "mi");
mi.textContent = "e";
a.setAttribute("href", "https://de.wikipedia.org/wiki/Eulersche_Zahl");
a.target = "_blank"; // setzt das Attribut target
a.setAttribute("rel", "noopener noreferrer");
a.append(mi);
math.append(a);
document.body.append(math);
console.log(a.getAttribute("target"));
Alle Formel-Links in einem benannten iframe öffnen
// <iframe name="definitionen"></iframe> ist im Dokument vorhanden
const mathLinks = document.querySelectorAll("math a[href]");
mathLinks.forEach((link) => {
link.target = "definitionen";
});
console.log(`${mathLinks.length} Formel-Links umgeleitet`);
// Wichtig · Fallstricke
- Kompatibilität:
MathMLAnchorElementist eine neue, noch nicht überall verfügbare Schnittstelle. Vor der Nutzung sollte man mittypeof MathMLAnchorElement !== "undefined"prüfen, ob sie vorhanden ist. Als Rückfall dienengetAttribute("target")undsetAttribute("target", …). - Namensraum: Nur ein
<a>im MathML-Namensraum ist einMathMLAnchorElement. Wird es mitdocument.createElement("a")statt mitcreateElementNSerzeugt, entsteht einHTMLAnchorElement. - Sicherheit: Bei
_blanksollte man zusätzlichrel="noopener"setzen, damit die geöffnete Seite nicht überwindow.openerauf das eigene Fenster zugreifen kann („Reverse Tabnabbing“). Neuere Browser setzennoopenerbei_blankzwar oft automatisch, darauf sollte man sich aber nicht verlassen. - Ungültige oder unbekannte Namen werden nicht abgelehnt. Ein unbekannter Name öffnet in der Regel einen neuen, benannten Kontext.
- Ohne
hrefist der Link nicht navigierbar, undtargethat keine Wirkung.