脚本功能在Chrome中运行一次,但在Firefox中工作良好

Script function on running once in Chrome but works fine in Firefox

本文关键字:但在 一次 Firefox 工作 功能 Chrome 运行 脚本      更新时间:2023-09-26

我正在使用NVD3制作几个图形。我在addGraph函数中添加了一个console.log,用于添加一个特定的图形。

我想知道我的代码是否有问题?我对图书馆的使用正确吗?我不知道从哪里开始解决这个问题。

FIREFOX(所有图形都正常显示)

444Add graph在这里叫做

518Add graph在这里叫做

572Add graph在这里叫做

553Add graph在这里叫做

617Add graph在这里叫做

595Add graph在这里叫做

谷歌CHROME

总南

总NaN

总NaN

总南

总NaN

此处调用

Add graph合计108

total 138

共145

共146

代码

调用脚本

<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>

图形所在的div

<div id='chart1<?= $chartID?>' style="width:1110px;height:300px;font-size:11px;margin-top:5px">
    <svg></svg>
</div>

我最好的猜测是这些数字有数学计算。在某些情况下,使用函数parseFloat()可以将字符串转换为数字,以便正确地进行数学计算。