Pfeilfunktionssyntaxfehler in IE 11
Bei Verwendung von d3.js zur Visualisierung tritt bei der Ausführung im IE ein Codeabschnitt auf einen Syntaxfehler auf 11. Der Fehler tritt speziell innerhalb der zur Definition verwendeten Pfeilfunktionen auf Attribute.
g.selectAll(".mainBars") .append("text") .attr("x", d => (d.part == "primary" ? -40 : 40)) .attr("y", d => +6) .text(d => d.key) .attr("text-anchor", d => (d.part == "primary" ? "end" : "start"));
Das Problem
Die Ursache des Fehlers ist die Verwendung von Pfeilfunktionen d => {}, die in IE 11 nicht unterstützt werden. Pfeilfunktionen sind eine moderne JavaScript-Syntax, die in ES6 eingeführt wurde, während IE 11 nur bis ES5 unterstützt.
Die Lösung
Um das Problem zu beheben, ersetzen Sie die Pfeilfunktionen durch die herkömmliche Funktionssyntax, die vom IE verstanden wird 11.
g.selectAll(".mainBars") .append("text") .attr("x", function (d) { return d.part == "primary" ? -40 : 40; }) .attr("y", function (d) { return +6; }) .text(function (d) { return d.key; }) .attr("text-anchor", function (d) { return d.part == "primary" ? "end" : "start"; });
Zusätzliche Überlegungen
Während die traditionelle Funktionssyntax in IE 11 unterstützt wird, wird im Allgemeinen empfohlen, moderne JavaScript-Funktionen zu verwenden, wenn dies möglich ist und diese bieten saubererer und effizienterer Code. Aus Kompatibilitätsgründen mit älteren Browsern wie IE 11 ist es in diesem Fall jedoch erforderlich, die ES5-Syntax zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum schlagen meine d3.js-Pfeilfunktionen in IE11 fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!