我正在将一些JavaScript转换为Typescript。setAttributeNS不会允许null
在下面的代码中,null被拒绝,因为它不能被分配给字符串参数。
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttributeNS(null, 'width', canvas.width.toString());
svg.setAttributeNS(null, 'height', canvas.height.toString());
检查的svg
类型,我们发现这是SVGSVGElement
(是的,SVG的名字出现了两次)。我试着明确地指定了一个类型svg: SVGElement
,并能够将创建的元素分配给它,但是对null问题没有影响。
接受的答案Difference between setAttribute and setAttributeNS(null,说我必须当属性没有定义的命名空间时传递null。然后它建议我使用“一致性”setAttributeNS
。
但我不能传递null。我应该传递一个空字符串吗?这会起作用吗?还是应该使用DOM级别1 setAttribute
方法?
不回答问题的种类,但你不应该被指定命名空间是通过'http:// www.w3.org/2000/svg'? – GregHNZ
@GregHNZ - 其实,没有。在我连接的答案文本中有对此的讨论。 –
只需使用setAttribute即可。整体打字较少。 –