如果变量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);
}
答案 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);