Start · Sprachen · JavaScript · Referenz · MathMLAnchorElement.target

MathMLAnchorElement.target

Eigenschaft

Liest oder setzt das <code>target</code>-Attribut eines MathML-<code>&lt;a&gt;</code>-Elements, also wo die verlinkte Ressource angezeigt wird (z. B. <code>_blank</code>).

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

Signatur

MathMLAnchorElement.target

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

Typ
string
Beschreibung
Der aktuelle Wert des Attributs 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"));
}
_blank

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"));
_blank

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`);
3 Formel-Links umgeleitet

// Wichtig · Fallstricke

  • Kompatibilität: MathMLAnchorElement ist eine neue, noch nicht überall verfügbare Schnittstelle. Vor der Nutzung sollte man mit typeof MathMLAnchorElement !== "undefined" prüfen, ob sie vorhanden ist. Als Rückfall dienen getAttribute("target") und setAttribute("target", …).
  • Namensraum: Nur ein <a> im MathML-Namensraum ist ein MathMLAnchorElement. Wird es mit document.createElement("a") statt mit createElementNS erzeugt, entsteht ein HTMLAnchorElement.
  • Sicherheit: Bei _blank sollte man zusätzlich rel="noopener" setzen, damit die geöffnete Seite nicht über window.opener auf das eigene Fenster zugreifen kann („Reverse Tabnabbing“). Neuere Browser setzen noopener bei _blank zwar 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 href ist der Link nicht navigierbar, und target hat keine Wirkung.