有没有一种简单的方法可以将字符串转换为普通 javascript 中的 svg 元素(无库)?喜欢:
var data = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z"/></svg>';
//convert this string to a DOM element
Run Code Online (Sandbox Code Playgroud)
更新
我通过使用 DOMParser API https://developer.mozilla.org/en-US/docs/Web/API/DOMParser解决了这个问题
var data = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z"/></svg>';
function createSVGElement(data) {
var parser = new DOMParser();
var doc = parser.parseFromString(data, "image/svg+xml");
document.body.appendChild(doc.lastChild);
}
Run Code Online (Sandbox Code Playgroud)
它工作得非常好,而且我不需要使用 div。
您可以创建一个占位符元素,设置innerHTML,然后获取firstChild
var placeholder = document.createElement('div');
placeholder.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z"/></svg>';
var elem = placeholder.firstChild;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4911 次 |
| 最近记录: |