【发布时间】:2014-06-20 11:24:54
【问题描述】:
我正在使用 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?
我定义属性对象的代码如下所述。我的错误总是在这个 sn-p 的第一行。但是,我在该行中找不到任何错误,所以我认为它必须在其他地方,并且只提到它的“根”。 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 不符合 ES5,所以
Object.keys()不可用(除非你拉入 es5-shim.js)跨度>
标签: javascript jquery internet-explorer-8 highcharts javascript-objects