d3を使用して作成されたチャートでは、Chromeでうまく動作するHTMLを使用する必要がありますが、エッジはHTMLを表示せず、なぜその理由がわかりません。D3はエッジブラウザでHTMLが動作しない
Here is a JSFiddle that shows the issue、Chromeで動作しますが、エッジに..ここで
はフィドルのコードではありません。
<!DOCTYPE html>
<body>
<div id="chart"></div>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
(function(d3) {
'use strict';
var dataset = [
{ label: 'Abulia', count: 10 },
{ label: 'Betelgeuse', count: 20 },
{ label: 'Cantaloupe', count: 30 },
{ label: 'Dijkstra', count: 40 }
];
var width = 360;
var height = 360;
var radius = Math.min(width, height)/2;
var color = d3.scale.category20b();
var svg = d3.select('#chart')
.append('svg')
.attr('width', width)
.attr('height', height)
.append('g')
.attr('transform', 'translate(' + (width/2) +
',' + (height/2) + ')');
var arc = d3.svg.arc()
.outerRadius(radius);
var pie = d3.layout.pie()
.value(function(d) { return d.count; })
.sort(null);
var path = svg.selectAll('path')
.data(pie(dataset))
.enter()
.append('path')
.attr('d', arc)
.attr('fill', function(d, i) {
return color(d.data.label);
});
svg.append("text")
.attr('y', 0)
.attr('x', 100)
.data(['some text'])
.attr("text-anchor", "middle")
.attr('font-size', '20px')
.attr('font-weight', 'bold')
.attr('fill', 'white')
.text(function(d) {
return d;
});
svg.append("text")
.attr('y', 0)
.attr('x', -100)
.data(['some html °'])
.attr("text-anchor", "middle")
.attr('font-size', '20px')
.attr('font-weight', 'bold')
.attr('fill', 'white')
.html(function(d) {
return d;
});
})(window.d3);
</script>
</body>
私も試してみました:
svg.append("foreignObject")
.attr('y', 0)
.attr('x', -100)
.data(['some html °'])
.attr("text-anchor", "middle")
.attr('font-size', '20px')
.attr('font-weight', 'bold')
.attr('fill', 'white')
.attr('width', width)
.attr('height', height)
.html(function(d) {
return d;
});
が確認されました。エッジは.htmlを表示しません。私はOperaとChromeでは見ることができますが、Edge(25)ではなくIE(11)、IE(9) – Klaujesi
でもそれを見ることができます。 .. – sethreidnz
SVGシンボルを使用することができます。最初にあなたのシンボルを定義して(必要に応じて使用します) – Klaujesi