我对 SVG 和 JavaScript 有疑问:
此代码按预期运行:
function initSvg(width) {
SVGRoot = document.getElementsByTagName('svg')[0];
console.log(SVGRoot.currentScale); // Displays '1' which is OK
但是当我尝试像这样重新分配 currentScale 参数时:
function initSvg(width) {
SVGRoot = document.getElementsByTagName('svg')[0];
SVGRoot.currentScale = parseFloat(width)/400;
console.log(SVGRoot.currentScale); // Should display some floating point number
我得到错误
Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) nsIDOMSVGSVGElement.currentScale]
并且不执行警报。我对 SVGRoot.currentScale 的分配有什么问题?
更新:
使用时错误消失
SVGRoot.setAttribute('currentScale', parseFloat(width)/400);
或者
SVGRoot.setAttributeNS(null, 'currentScale', parseFloat(width)/400);
但 currentScale 的实际值不会改变。无论传递给 setAttribute 什么,它都保持为 1。