我有一个 svg 元素作为纯文本
<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>
如何通过使用 JavaScript/jquery 插入它来在 HTML 页面上呈现它,而不用重新创建每个节点
document.createElementNS("http://www.w3.org/2000/svg", "svg")
(因为否则它不会被渲染)
最佳答案
尝试以下代码。
var svg = '<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">'+
'<path fill="#156BB1" d="M22.906,10.438c0,4.367-6.281,14.312-7.906,17.031c-1.719-2.75-7.906-12.665-7.906-17.031S10.634,2.531,15,2.531S22.906,6.071,22.906,10.438z"/>'+
'<circle fill="#FFFFFF" cx="15" cy="10.677" r="3.291"/></svg>';
var mysvg = new Image();
mysvg.src = 'data:image/svg+xml,' + escape(svg);
然后使用mysvg
变量将其放置在 html 中您想要的位置。
关于JavaScript 从文本渲染 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521994/