javascript - 如何在 JavaScript 中使用 setAttributeNS() 捕获错误?

标签 javascript svg setattribute

如果变量 sPoints 字符串的格式正确(例如,点由“;”分隔),则不会绘制多边形,并且在调试器中我可以看到检测到错误。然而,没有抛出可以捕获的异常。 如果满足以下条件,则工作正常:

var sPoints = "310,320 400,320 379,358";

但如果出现以下情况,则会“出错”:

var sPoints = "310,320;400,320;379,358";

 try {
    var NewPoly = document.createElementNS(svgns, "polygon");
    NewPoly.setAttributeNS(null, 'id', "someId");
    NewPoly.setAttributeNS(null, 'points', sPoints);
    NewPoly.setAttributeNS(null, 'class', myClass);
    NewPoly.setAttributeNS(null, 'onclick', "handlePgonClick(evt)");
    objSvgElem.appendChild(NewPoly);
  }
  catch (err) {
    vShowMsg("drawing shape failure: " + err.message);
  }

最佳答案

您可以计算 SVG DOM 已接受多少分,并将其与您认为应该获得的数字进行比较。

var NewPoly = document.createElementNS('http://www.w3.org/2000/svg', "polygon");
NewPoly.setAttribute('points', "310,320;400,320;379,358");
alert(NewPoly.points.numberOfItems);

NewPoly.setAttribute('points', "310,320 400,320 379,358");
alert(NewPoly.points.numberOfItems);

关于javascript - 如何在 JavaScript 中使用 setAttributeNS() 捕获错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33852005/

相关文章:

javascript - TypeError : node. setAttribute 不是函数

javascript - 有没有办法让 komodo edit 突出显示以 '$' 美元符号开头的变量?

javascript - 谁能解释为什么这个 IIFE 传入的参数会改变作用域内的变量,使其变为未定义的?

javascript - SVG像素比为1 :2 from code to rendering

svg - 在 dart :svg 中创建路径

c++ - 使用 MSXML 在 XML 节点中设置属性。我很震惊

java - 如何用新值替换 XML 标记之间的旧值

javascript - 快速扩散强度算法

javascript - 如何使用 javascript 作为事件文本显示 <img> 标签

javascript - 是否可以在div(有id)中动态修改子元素(没有id)的样式?