Safari不显示nvd3图表

时间:2014-03-19 17:43:26

标签: javascript node.js d3.js safari nvd3.js

我在Safari中遇到以下错误:

TypeError: 'NaN' is not a valid argument for 'in' (evaluating 'n in t')

这是代码的片段,似乎是一个原因(来自safati开发工具):

 function nn(e) {
   return function(t, n) {
     return t += e, [t > Fa ? t-2 * Fa: - Fa > t ? t + 2 * Fa: t, n]
   }
 }

Src:nvd3.min.js。

图表在任何其他浏览器(甚至是IE)中都能正常工作。我们使用PIE,LINE BAR,BULLET的图表类型。

更新

我从现在开始使用nvd3的开发版本:https://raw.github.com/novus/nvd3/master/nv.d3.min.js

我在Safari中启动了我的meteor项目并得到了未处理(相同)的异常。 d3.v3.js,第4748行()。

function d3_interpolateObject(a, b) {
var i = {}, c = {}, k;
for (k in a) {
  if (k in b) {
    i[k] = d3_interpolateByName(k)(a[k], b[k]);
  } else {
    c[k] = a[k];
  }
}
for (k in b) {
  if (!(k in a)) {
    c[k] = b[k];
  }
}
return function(t) {
  for (k in i) c[k] = i[k](t);
  return c;
};

}

我还发现了我的代码片段,它引用了“bug”' d3的一部分:

try {
   d3.select('#chart3 svg')
     .datum(data)
     .transition().duration(1000)
     .call(chart);
}
catch (e) {
  console.log(e.message);
}

这是一个子弹'图表。与线条图相同的问题。 数据如下所示:

        var data = {
            "title": "test",
            "subtitle": "test",
            "ranges": [1, 2, 3],
            "measures": [x],
            "markers": [x],
            "rangeLabels": ['test', 'test', 'test'],
            "measureLabels": ['test'],
            "markerLabels": ['test']
        };

其中x是浮点数。

1 个答案:

答案 0 :(得分:0)

问题在于使用safari特定的内部d3数据解析。

所以我解决了将图表类型更改为简单栏的问题。