我在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是浮点数。
答案 0 :(得分:0)
问题在于使用safari特定的内部d3数据解析。
所以我解决了将图表类型更改为简单栏的问题。