未捕获的TypeError:无法读取未定义的属性“createElementNS”

时间:2014-09-01 17:32:02

标签: javascript svg

我正在尝试运行此函数,该函数采用路径并将其转换为多边形:

function polygonSampledFromPath(path,samples){
  var doc = path.ownerDocument;
  var poly = doc.createElementNS('http://www.w3.org/2000/svg','polygon');

  var points = [];
  var len  = path.getTotalLength();
  var step = step=len/samples;
  for (var i=0;i<=len;i+=step){
    var p = path.getPointAtLength(i);
    points.push( p.x+','+p.y );
  }
  poly.setAttribute('points',points.join(' '));
  return poly;
}


var path = "m247.96255,140.77197c28.82227,-82.68753 141.75,0 0,106.31247c-141.75005,-106.31247 -28.82213,-189 0,-106.31247z"

polygonSampledFromPath(path,30);

但是我一直收到这个错误,这个错误导致我假设我在path变量中传递了错误的路径格式。

  

未捕获的TypeError:无法读取属性&#39; createElementNS&#39;的   未定义

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

替换

var doc = path.ownerDocument;
var poly = doc.createElementNS('http://www.w3.org/2000/svg','polygon');

通过

var poly = document.createElementNS('http://www.w3.org/2000/svg','polygon');