SVG numberOfItems 属性无法正常工作

6
我们的网站在最新更新后在Chrome上突然停止工作...
给出的错误为
Uncaught TypeError: Cannot read property 'numberOfItems' of undefined

这里是使用numberOfItems属性的地方:
// Absolutize and parse path to array
  , parse: function(array) {
      /* if it's already is a patharray, no need to parse it */
      if (array instanceof SVG.PathArray) return array.valueOf()

      /* prepare for parsing */
      var i, il, x0, y0, x1, y1, x2, y2, s, seg, segs
        , x = 0
        , y = 0

      /* populate working path */
      SVG.parser.path.setAttribute('d', typeof array === 'string' ? array : arrayToString(array))

      /* get segments */
      segs = SVG.parser.path.pathSegList


      for (i = 0, il = segs.numberOfItems; i < il; ++i) {
        seg = segs.getItem(i)
        s = seg.pathSegTypeAsLetter
etc. (I didn't put the whole loop)

最新版Chrome更新后,为什么SVG和Javascript无法读取此属性?有什么好的解决方法吗?
谢谢!

在调试器中检查 segs 的值。 - pratikpawar
目前正在实施关于SVG“path”元素的工作草案。可能存在错误(https://svgwg.org/svg2-draft/paths.html#InterfaceSVGPathElement)。我建议尝试使用Canary浏览器,看看问题是否存在。 - Todd Moore
不相关:不要省略 ;,否则你会受到惩罚的。 - jcaron
请参见 https://dev59.com/XZPfa4cB1Zd3GeqPAj-m。 - Robert Longson
这个问题在 svg.js 中一旦被发现就被解决了(于2015年11月30日发布)。所以你只需要更新你的版本。 - Fuzzyma
1个回答

9

非常感谢!不过我有一个小问题...我已经尝试了polyfill,但是仍然出现错误。这是我的项目:https://github.com/jeratt/Citywide-Dashboard我已经将"<script src="pathseg.js"></script>"粘贴到index.php中,并将pathseg.js文件添加到主目录中(以及尝试了许多其他子文件夹)。我做错了什么?谢谢! - Juanbi Berretta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接