javascript - 我不明白 javascript 对象创建语法中的哪些差异? IE8 与 Chrome

标签 javascript jquery internet-explorer-8 highcharts javascript-objects

我正在使用 Highcharts,以图形方式显示数据。我之所以选择这个库,是因为它与 IE8 和较新版本的 Google Chrome 兼容,因为它根据可支持性以 VML 或 SVG 形式呈现图表。

HighCharts 可以通过定义属性对象来创建,该对象作为参数传递。这在 Chrome 中工作得很好,但我在 IE8 中遇到了问题(这里有回声吗?)

我怀疑错误是在 JavaScript 中定义对象时两个浏览器的语法支持不同。下面的两个问题是我找到的最接近的信息,但它们没有解决我的实际问题。

What are the most likely causes of Javascript errors in IE8?

IE8 errors when defining a Javascript object?

我定义属性对象的代码如下所示。我的错误总是在这个片段的第一行。但是,我在该行中找不到任何错误,所以我认为它必须在其他地方,并且仅引用它的“root”。 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]
            ]
        }]
    };

编辑: 正如我通过这篇文章可以看出的:Strange behavior Highcharts pie chart in document mode IE8 ,我的对象表示法的主要结构是正确的。中间一定有一两行导致了问题。

最佳答案

IE8 不支持

Object.keys。它是ES5规范,仅IE9及以上版本支持。您需要采用不同的方式来获取该信息。

参见here ...

关于javascript - 我不明白 javascript 对象创建语法中的哪些差异? IE8 与 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24326198/

相关文章:

javascript - 为 TokBox Webrtc session 添加白板功能

javascript - 使用 jQuery 和 CSS 的进度条

javascript - Tinymce - iframe 无法正常工作,它直接显示 url

javascript - 伪造 AJAX-y 登录框

javascript - chrome 中 div 按钮上的小死 Angular

JavaScript 多态变量继承

jquery - jQuery ui按钮在IE8中单击时崩溃(仅)

html - 我怎样才能创建这样的布局,两边的高度总是相同的?

javascript - 是否可以使用 Testcafé 访问网站上定义的 af 函数?

html - 图片在 IE8 或更早版本上不可见