[英]JavaScript render SVG from text
我有一個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")
(因為否則它將不會呈現)
使用innerHTML插入它。
document.documentElement.innerHTML = '<svg height="100" width="100">\\n <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />\\n</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中您想要的任何位置。
使用JQuery執行此操作:
var str = '<svg height="100" width="100"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /></svg>'
$("body").append(str)
這里的工作代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.