働く
<g>
<foreignObject width="100%" height="100%">
<body>
<div style="width:4em;height:4em">
<object height="100%" width="100%"
data="icons/cloud.svg" type="image/svg+xml">
</object>
</div>
</body>
</foreignObject>
<text x="0" y="15" fill="red">I love SVG</text>
</g>
</svg>
動作していません
d3js を使用して動的に同じものを追加しようとしています。ただし、SVG 画像をロードするのではなく、単に DOM 要素構造を追加するだけです。
d3.select("body").append("svg")
.append("foreignOject").attr("height","100%").attr("width","100%")
.append("body")
.append("div").style("width","4em").style("height","4em")
.append("object").attr("height","100%").attr("width","100%")
.attr("data","icons/cloud.svg").attr("type","image/svg+xml");
あとxhtml:プレフィックスも同じ。その「オブジェクト」タグが SVG 画像をロードしていない理由がわかりません。次の SC を確認してください。