我正在將一些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即可。整體打字較少。 –