- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在纯 JS 中操作 SVG,发现如果我不使用像 createElementNS
这样的方法,它就不会按预期运行。和setAttributeNS
.
<svg id="mydsvg" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
上面的标记工作得很好。但如果您尝试通过以下代码添加另一个圆圈,您将看不到它。
var circle = createElement('circle');
circle.setAttribute('cx', 50);
....
document.getElementById('mysvg').appendChild(circle);
但是如果你使用createElementNS
和setAttributeNS
,它将按预期工作。
最糟糕的是,两者都是 createElement
和createElementNS
创建相同的 DOM 文本。
最佳答案
它不起作用,因为规范规定 SVG 元素必须存在于 SVG 命名空间中,而 createElement 在 html 命名空间中创建元素。否则解析器如何知道您是否想要创建 html <a>
与 src 属性或 SVG 一起使用的元素 <a>
需要 `xlink:href 属性的元素。
在 html 中,命名空间没有序列化,事情看起来是一样的。在 XML 中,命名空间被序列化,但它们却没有。
html 中的 SVG 看起来像这样...
<svg id="mydsvg" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
SVG 作为独立文档看起来像这样
<svg xmlns="https://www.w3.org/2000/svg" id="mydsvg" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
该圆继承其父级的命名空间。
关于javascript - 如果不通过 createElementNS 处理,为什么动态 SVG 无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37204272/
在链接到 XHTML 页面的 JS 中,我使用 createElementNS 创建新元素,如下所示: const NS = 'http://my.site/xmlns'; const el1 = d
我不太明白 createElementNS 是如何工作的。例如: svg = "http://www.w3.org/2000/svg"; group = document.createElementN
我想使用 Javascript 创建内联 SVG 图形。 但是,看起来像createElementNS函数应用一些标准化并将所有标签转换为小写。这对于 HTML 来说很好,但对于 XML/SVG 来说
我正在构建一个游戏并尝试在最后显示高分。当前用户名应该用不同的颜色突出显示,但我无法让它工作。当我出于测试目的尝试更改字体大小时,它仍然有效! var nameSpan = svgdoc.create
我正在尝试创建一个新的 与 每次我点击按钮时都会使用 JavaScript 进行标记。当我在控制台 Firebug 中看到结果时,它工作正常,但屏幕上没有显示任何内容。我想要的是图像 每次单击该按钮时
这两者之间的真正区别是什么?我的意思是真正的,本质上的区别。常规 createElement 的 future 是什么? Svg 是 xml,不是 html。我明白了。所以我们使用 createEle
这个问题已经有答案了: I need compatible JavaScript code for document.createElementNS() in older versions of IE
缩短,我正在使用(使用)来复制正方形(路径)代码被添加到 DOM 然而,只有 1px(调试 chrome)。第六 block 用户不可见!谢谢你! code in: codepen $(functio
The html code and how it shows up on the inspector 你好,我开始学习一些网络开发。它一直很顺利,直到我尝试在一个组中动态生成一些 SVG 矩形。但是即
Document.createElementNS() 的 jQuery 是什么? function emleGraphicToSvg(aGraphicNode) { var lu = functi
我正在尝试运行此函数,该函数采用路径并将其转换为多边形: function polygonSampledFromPath(path,samples){ var doc = path.ownerDo
这行不通: const svg = document.createElement('svg') svg.setAttribute('height', '100') svg.setAttribute('
我在其中一个 JS 中有以下声明。 var path = document.createElementNS('http://www.w3.org/2000/svg', 'path') 这在不缩小的情况
我将此问题发布到 Meteor-Talk Google 群组,但我认为这是一个晦涩的问题,需要信号增强。 我正在尝试创建一个插件,让您可以将 XML 样式元素添加到 HTML 文档中,就像 HTML5
我找不到任何关于此的有用信息,我找到的最好的线程是:createElement vs. createElementNS 但是我不明白这样一行是怎么来的:var path = document.crea
我正在使用 nvd3 绘制折线图,当我将 div 传递给 nvd3 绘制图表时,它给我这个错误 Uncaught TypeError: Cannot read property 'createEl
本文整理了Java中org.apache.cxf.helpers.XMLUtils.createElementNS()方法的一些代码示例,展示了XMLUtils.createElementNS()的具
我试图在纯 JS 中操作 SVG,发现如果我不使用像 createElementNS 这样的方法,它就不会按预期运行。和setAttributeNS . 上面的标记工作得很好。但如果您尝试通
我试图在纯 JS 中操作 SVG,发现如果我不使用 createElementNS 和 setAttributeNS 等方法,它不会按预期运行。 上面的标记工作得很好。但是,如果您尝试通过以
JavaScript 函数 document.createElementNS()在旧版本的 IE (6,7,8) 中不起作用?这个函数有没有兼容的代码,比如Array的compatible map f
我是一名优秀的程序员,十分优秀!