IE8中的Javascript对象

Javascript Objects in IE8

本文关键字:对象 Javascript 中的 IE8      更新时间:2023-09-26

我在IE8中使用flot时遇到问题。我很好地提取了excanvas.js文件,但IE现在似乎对我的对象有问题。这是我用来尝试构建条形图的代码

var uptime = [];
            var TotalUptime = 0;
            for(var i = 1; i < data.Service.length; i++){
                var UptimeValues = parseFloat(data.Service[i].TIME_UP) + parseFloat(data.Service[i].TIME_MAINT) + parseFloat(data.Service[i].TIME_DEGRADED);
                uptime.push([-i, UptimeValues / 14.4]);
                TotalUptime = TotalUptime + UptimeValues;
            }
            var ChartData = [
                {
                    data: uptime,
                    color: '#bfd730',
                    bars: {show: true, align:'center', barWidth:0.1, fillColor:'#bfd730'}
                },
            ];
            var options = {
                xaxis: {ticks:[[-1, 'Now']], color: '#ffffff', min: -30, max: -1},
                yaxis: {color: '#ffffff', min: 0 ,max: 100}
            };
            $.plot($("#ServiceInfoChart"), ChartData, options);

我得到的响应是"data"为null或不是对象。

我已经确认flot本身没有任何问题,因为我在其中放入了静态值,图表呈现良好。我对使用上面代码的任何其他浏览器都没有任何问题。

我有什么东西不见了吗?

EDIT:全功能

我正在发出一个请求,该请求将发送回类似的JSON响应

{"Service": [{"Name":"SomeService","Status":"UP","Description":"Some Description"},{"Date":"2012-04-02","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-04-01","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-04-00","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-30","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-29","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-28","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-27","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-26","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-25","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-24","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-23","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-22","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-21","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-20","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-19","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-18","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-17","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-16","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-15","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-14","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"}]}

这是下面处理它的全部功能。

function GoToServiceInfo(){
    $.ajax({
        type: 'GET',
        url: 'get.php?Request=ServiceInfoFull',
        timeout: 10000,
        beforeSend: function (jqXHR, settings){
            jqXHR.setRequestHeader("SessionID", SessionID);
        },
        success: function(data){
            CheckForContactInfo();
            GetSubscriptions();
            $('#' + $('#content').find(':visible').attr('id')).slideToggle('fast', function(){
                $('#ServiceInfo').slideToggle('fast');
            });
            $('#ServiceInfoTitle').html(data.Service[0].Name);
            $('#ServiceInfoDescription').html('<h1>Description</h1>' + data.Service[0].Description);
            var uptime = [];
            var TotalUptime = 0;
            for(var i = 1; i < data.Service.length; i++){
                var UptimeValues = parseFloat(data.Service[i].TIME_UP) + parseFloat(data.Service[i].TIME_MAINT) + parseFloat(data.Service[i].TIME_DEGRADED);
                uptime.push([-i, UptimeValues / 14.4]);
                TotalUptime = TotalUptime + UptimeValues;
            }
            var ChartData = [
                {
                    data: uptime,
                    color: '#bfd730',
                    bars: {show: true, align:'center', barWidth:0.1, fillColor:'#bfd730'}
                },
            ];
            var options = {
                xaxis: {ticks:[[-1, 'Now']], color: '#ffffff', min: -30, max: -1},
                yaxis: {color: '#ffffff', min: 0 ,max: 100}
            };
            $.plot($("#ServiceInfoChart"), ChartData, options);
            var TotalUptimePercent = (TotalUptime / (data.Service.length - 1)) / 14.4;
            $('#UptimePercent').html('Uptime Past 30 Days <font color="#bfd730"> ' + TotalUptimePercent.toFixed(3) + '%</font>');
        },
        error: function(x, t, m) {
            if(t==="timeout") {
                noty({text: 'Error!', type: 'error', timeout: 2500});
            } else {
                noty({text: m, type: 'error', timeout: 2500});
            }
        }
    });
}

所以在我的代码中似乎有一个IE8不喜欢的尾随逗号。几个小时后我删除了它,现在一切都正常了!