簡體   English   中英

JavaScript從文本渲染SVG

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM