我正在使用 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 ,我的对象表示法的主要结构是正确的。中间一定有一两行导致了问题。
最佳答案
关于javascript - 我不明白 javascript 对象创建语法中的哪些差异? IE8 与 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24326198/