Javascript 脚本函数在Chrome中运行一次,但在Firefox中运行良好
我正在使用NVD3制作几个图形。我在addGraph函数中添加了一个console.log,它添加了一个特定的图形 我想知道我的代码中是否有错误?我正确使用图书馆了吗?我不知道从哪里开始解决这个问题 FIREFOX(所有图形都正确显示) 总数444 这里调用addgraph 总数518 这里调用addgraph 总数572 这里调用addgraph 总数553 这里调用addgraph 总数617 这里调用addgraph 总数595 这里调用addgraph 谷歌浏览器 全南 全南 全南 全南 全南 这里调用addgraph 总数108 总数138 总数145 总数146 代码 调用脚本Javascript 脚本函数在Chrome中运行一次,但在Firefox中运行良好,javascript,cross-browser,d3.js,nvd3.js,Javascript,Cross Browser,D3.js,Nvd3.js,我正在使用NVD3制作几个图形。我在addGraph函数中添加了一个console.log,它添加了一个特定的图形 我想知道我的代码中是否有错误?我正确使用图书馆了吗?我不知道从哪里开始解决这个问题 FIREFOX(所有图形都正确显示) 总数444 这里调用addgraph 总数518 这里调用addgraph 总数572 这里调用addgraph 总数553 这里调用addgraph 总数617 这里调用addgraph 总数595 这里调用addgraph 谷歌浏览器 全南 全南 全南 全南
<script src="../../../data/novus/lib/d3.v2.js"></script>
<script src="../../../data/novus/nv.d3.js"></script>
<script src="../../../data/novus/src/tooltip.js"></script>
<script src="../../../data/novus/src/models/legend.js"></script>
<script src="../../../data/novus/src/models/axis.js"></script>
<script src="../../../data/novus/src/models/scatter.js"></script>
<script src="../../../data/novus/src/models/line.js"></script>
<script src="../../../data/novus/src/models/multiChart.js"></script>
循环中
<script src="../../../data/novus/nv.d3.js"></script>
<script>
var impressions = [];
var clickrate = [];
var trial_impressions = [];
var trial_clickrate = [];
var testdata = [{
"key" : "Impressions",
"type" : "line",
"values" : impressions,
"yAxis" : 1
}, {
"key" : "Clicks",
"type" : "line",
"values" : clickrate,
"yAxis" : 2
}, {
"key" : "T Impressions",
"type" : "line",
"values" : trial_impressions,
"yAxis" : 1
}, {
"key" : "T Clicks",
"type" : "line",
"values" : trial_clickrate,
"yAxis" : 2
}].map(function(series) {
series.values = series.values.map(function(d) {
return {
x : d[0],
y : d[1]
}
});
return series;
});
var chart;
nv.addGraph(function() {
console.log("Add");
chart = nv.models.multiChart().margin({
top : 30,
right : 60,
bottom : 50,
left : 70
}).x(function(d, i) {
return i
}).color(d3.scale.category10().range());
chart.xAxis.tickFormat(function(d) {
var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
if ( typeof (dx) == undefined || d > 1000) {
dx = new Date(d);
} else {
dx = new Date(dx);
}
return dx ? d3.time.format('%x')(dx) : '';
});
chart.yAxis1.tickFormat(d3.format(',.1f'));
v
chart.yAxis2.tickFormat(d3.format(',.4f'));
d3.select('#chart1<?= $chartID?> svg').datum(testdata).transition().duration(500).call(chart);
return chart;
});
</script>
var=[];
var点击率=[];
var试验_印象=[];
var试验点击率=[];
var testdata=[{
“关键”:“印象”,
“类型”:“行”,
“价值观”:印象,
“雅克西斯”:1
}, {
“按键”:“点击”,
“类型”:“行”,
“值”:点击率,
“雅克西斯”:2
}, {
“关键”:“T印象”,
“类型”:“行”,
“价值观”:审判印象,
“雅克西斯”:1
}, {
“键”:“T单击”,
“类型”:“行”,
“价值”:试用点击率,
“雅克西斯”:2
}].map(函数(系列){
series.values=series.values.map(函数(d){
返回{
x:d[0],
y:d[1]
}
});
返回序列;
});
var图;
nv.addGraph(函数(){
控制台日志(“添加”);
图表=nv.models.multiChart()页边距({
前30名,
右:60,
底数:50,
左:70
}).x(功能(d,i){
返回i
}).颜色(d3.比例.类别10().范围());
chart.xAxis.tickFormat(函数(d){
var dx=testdata[0]。值[d]&&testdata[0]。值[d]。x | | 0;
如果(类型(dx)=未定义| | d>1000){
dx=新日期(d);
}否则{
dx=新日期(dx);
}
返回dx?d3.time.format(“%x”)(dx):“”;
});
chart.yAxis1.tickFormat(d3.format(',.1f');
v
chart.yAxis2.tickFormat(d3.format(',.4f');
d3.选择('#chart1 svg').datum(testdata).transition().duration(500).调用(chart);
收益表;
});
调用图形的div
<div id='chart1<?= $chartID?>' style="width:1110px;height:300px;font-size:11px;margin-top:5px">
<svg></svg>
</div>
我最好的猜测是这些数字有数学计算。在这种情况下,使用函数parseFloat()可以将字符串转换为数字,以便正确进行数学计算。代码可能会有很大帮助。您也需要发布用于生成这些结果的代码-否则我们不知道您是否做错了任何事情。您是否能够在NVD3站点上运行示例?是的,我有,当我尝试渲染多个图形时,它可以在firefox上正常工作。