svg innerHTML in firefox can not display

。_饼干妹妹 提交于 2019-12-01 23:14:06

A workaround is to add the innerHTML code as HTML, and not SVG. You can do that simply by using a <div> (instead of <svg>) in your HTML code as the placeholder, and insert the full SVG via innerHTML.

Replace:

<svg id="container" width="100px" height="100px">
</svg>

with

<div id="container" style="width: 100px; height: 100px">
</div>

And wrap your innerHTML string within an <svg> element:

var svg = document.getElementById('container');
svg.innerHTML   = '<svg><rect width="100" height="60" fill="green" />'
                + '<circle cx="10" cy="19" r="20" fill="blue"></circle>'
                + '<text x="15" y="20" fill="white">hello world</text>'
                + '<g transform="translate(0, 70)">'
                + '<rect width="100" height="20" fill="yellow" /></g></svg>';

This should work in both Chrome and Firefox. Here's a JSFiddle.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!