无法在HTML DOM中显示已分析的SVG节点.为什么?
Cannot display parsed SVG node in the HTML DOM. Why?
在下面的代码中,我尝试用两种不同的方式在屏幕上创建一个SVG圆。
var body = document.getElementsByTagName('body')[0];
var vis = document.createElementNS("http://www.w3.org/2000/svg", "svg");
body.appendChild(vis);
vis.setAttribute('width',400);
vis.setAttribute('height',300);
var xmlString = '<circle r="300"></circle>'
, parser = new DOMParser()
, doc = parser.parseFromString(xmlString, "text/xml");
c1 = doc.firstChild;
c2 = document.createElementNS("http://www.w3.org/2000/svg", "circle");
c2.setAttribute('r','300')
//for(x in c1) {c1[x] = c2[x]}
vis.appendChild(c1);
vis.appendChild(c1);
不显示的第一种方式是,如果我用c2替换那一行的c1,它就可以工作了。此外,如果我放回c1,然后取消注释基本上将c2克隆到c1中的行,它仍然不起作用。
所以我知道,如果我不使用基本名称空间http://www.w3.org/2000/svg
,浏览器不理解"圆"是什么,这肯定是个问题,但我不知道如何修复它
问题:如何解析任意svg字符串,将其插入DOM,并让浏览器了解如何显示它?
像这样使用基本(即SVG)命名空间有什么问题?
<circle r="300" xmlns="http://www.w3.org/2000/svg"></circle>
相关文章:
- 如何使用javascript操作SVG节点,使其在MS Edge中工作
- 如何从onClick更改多个SVG节点的颜色
- 我把“;类“;SVG中存在但未应用的节点的属性!为什么?
- D3.js - 将力定向图节点从圆更改为 svg:rect
- 如何将SVG节点转换为PNG并下载给用户
- 在 d3.js 中创建嵌套的 SVG 节点
- 从 SVG 外部的按钮单击 D3 中的节点
- JavaScript 中 SVG 节点的简洁构造
- SVG 子节点返回文本
- 为什么我的svg节点在IE中泄漏内存
- 逐节点设置SVG基本形状
- 如何从d3节点数据中获取dom-svg元素
- 无法在HTML DOM中显示已分析的SVG节点.为什么?
- 如何将svg节点从一个组移动到另一个组
- Snap.load()一个svg img并为其填充颜色设置动画's子节点
- 如何在HTML5中读取内联SVG中的自定义名称空间节点
- 用javascript添加文本节点到SVG组,但没有显示
- SVG对象父节点上的JavaScript事件
- 生产节点应用程序无法找到SVG文件
- 外部dom元素上的D3.js事件处理程序来触发svg树节点的重绘