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

时间:2015-11-22 05:41:24

标签: 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);
  }

1 个答案:

答案 0 :(得分:1)

您可以计算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);