Какие различия в синтаксисе создания объектов javascript я не понял? IE8 против Chrome

Я работаю с Highcharts, чтобы отображать данные графически. Я выбрал эту библиотеку специально из-за ее совместимости как с IE8, так и с более новой версией Google Chrome, поскольку она отображает диаграммы в VML или SVG, в зависимости от возможности поддержки.

HighCharts может быть создан путем определения объекта свойств, который передается в качестве параметра. Это работает как шарм в Chrome, но у меня проблемы с IE8 (здесь есть эхо?)

Подозреваю, что ошибка заключается в поддержке разного синтаксиса для двух браузеров при определении объекта в javascript. Два вопроса, приведенные ниже, являются наиболее близким к тому, к чему я пришел, чтобы найти какую-либо информацию, но они не решают мою настоящую проблему.

Каковы наиболее вероятные причины ошибок Javascript в IE8?

Ошибки IE8 при определении объекта Javascript?

Мой код для определения объекта свойств приведен ниже. Моя ошибка всегда указывается в первой строке этого фрагмента. Однако я не могу найти никаких ошибок в этой строке, поэтому я думаю, что это должно быть где-то еще, и ссылаюсь только на его «корень». entry - это объект с несколькими параметрами для заполнения диаграммы заголовками и т.п.

    var chartOptions = {
        chart: {
            renderTo: "piecontainer"+index,
            plotBackgroundColor: null,
            plotBorderWidth: 0,
            plotShadow: false
        },
        title: {
            text: entry.title + '<br/><br/>' + entry.path + '<br/><br/>Total: ' + Object.keys(entry.testMap).length,
            align: 'center',
            verticalAlign: 'middle',
            y: 50
        },
        tooltip: {
            pointFormat: '{series.name}: <b> {point.y} ({point.percentage:.1f}%)</b>'
        },     

        legend: {
            width: 415,
            enabled: true,
            useHTML: true,
            labelFormatter: function() {
                return '<span>' + this.name + ': ' + this.y + '<t/></span>';
            }, 
            itemDistance: 20
        },

        credits: {
            enabled: false
        },

        plotOptions: {
            pie: {
                size: '100%',
                animation: false,
                 dataLabels: {
                        enabled: false                              
                    },
                    showInLegend: true,
                startAngle: -90,
                endAngle: 90,
                center: ['50%', '75%']
            }
        },
        series: [{
            type: 'pie',
            name: 'Test Cases',
            innerSize: '50%',
            data: [
                ['Passed',  1],
                ['Not Completed', 1],
                ['Failed', 1],
                ['No Run', 1],
                ['N/A', 1], 
                ['Blocked', 1],
                ['Incorrect Database Value', 1]
            ]
        }]
    };

РЕДАКТИРОВАТЬ: Как я могу судить по этому сообщению: Странное поведение Круговая диаграмма Highcharts в режиме документа IE8, основная структура моей объектной нотации верна. Посередине должна быть одна или две строки, которые вызывают проблемы.


person jumps4fun    schedule 20.06.2014    source источник
comment
Можете ли вы добавить в свой вопрос фактическое сообщение об ошибке?   -  person Cerbrus    schedule 20.06.2014
comment
Просто посмотрите на это, IE8 не совместим с ES5, поэтому Object.keys() недоступен (если вы не загружаете es5-shim.js)   -  person David Atchley    schedule 20.06.2014


Ответы (1)


Object.keys не поддерживается в IE8. Это спецификация ES5, которая поддерживается только в IE9 и выше. Вам понадобится другой способ получить эту информацию.

См. здесь ...

person shennan    schedule 20.06.2014
comment
Ах! Большое Вам спасибо. Я полагаю, что смогу извлечь построчно и проверить возможность поддержки, но я очень благодарен за эту помощь. Для меня намного быстрее. Я найду другой способ получить данные. Гарантированно;) - person jumps4fun; 20.06.2014
comment
Приму ответ через пять минут. - person jumps4fun; 20.06.2014
comment
@KjetilNordin. Посмотрите этот ответ, чтобы узнать больше о том, как получить длину объекта. - person shennan; 20.06.2014
comment
Вот почему я ТАК люблю :) - person jumps4fun; 20.06.2014
comment
Счет. Оно работает. И, на мой взгляд, код теперь тоже легче читать. Большое спасибо. - person jumps4fun; 20.06.2014