HighCharts.js n'est pas le rendu graphique sous IE8
Je suis à l'aide de HighCharts avec Python pour créer dynamiquement des graphiques. Tous fonctionne bien, mais j'ai cannot read property "0" of undefined
exception sous IE8. Unfortunetly mon client voulez qu'il fonctionne sous IE8. Heres le code de la fonction principale:
function generateChart(series) {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'company_chart',
},
xAxis: {
type: "datetime",
},
yAxis: [{
title: {
text: "T1",
},
},{
title: {
text: "T2",
},
},
opposite: true,
}],
plotOptions: {
series: { shadow: false },
column: { shadow: false, },
},
series: series
});
);
Maintenant, ma requête ajax retourne des données, et j'ai le stocker dans la variable comme ceci:
chart_data = [
{
type: "spline",
color: '#ff0000',
yAxis: 0,
data: dataT1,
},
{
type: "column",
color: '#0000ff',
yAxis: 1,
data: dataT2,
}
];
Après que j'appelle generateChart(chart_data);
. Le format des variables dataT1
et dataT2
est très bien, car il fonctionne sous tous les autres navigateur. Par exemple dataT1
peut ressembler à ceci:
dataT1 = [ [1325721600000,1.64],
[1325635200000,1.64],
[1325548800000,1.7],
[1325462400000,1.7],];
Mais encore une exception est levée sous IE8. Toutes les idées de comment résoudre ce problème?
chart_data[0].data[0]
et il lève l'exception. Je ne peux pas dire pour sûr, parce que j'ai utilisé la version minifiée. La chose étrange est que lorsque je debug il chart_data[0].data
est null
mais chart_data[1].data
ne l'est pas. Mais tous les asigments sont beaux (ils travaillent sous les autres navigateurs).Voir ma réponse de mise à jour. Le problème est avec le balançant des virgules dans votre tableau de données de définitions.
OriginalL'auteur freakish | 2012-01-09
Vous devez vous connecter pour publier un commentaire.
Ceux balançant les virgules sont à l'origine des erreurs dans Internet Explorer. Se débarrasser d'eux.
Voici un exemple:
Internet Explorer considère une virgule à la fin d'un objet littéral comme ça pour être une erreur. Vous devriez en effet être de voir les "Erreurs sur la page" avertissement, mais l'erreur est généralement quelque chose qui n'indique pas cette cause réelle.
modifier — eh bien, apparemment IE8 n'est pas pointilleux sur qui, bien que IE7 est.
éditer à nouveau — Cependant, IE8 interprète cette dernière balançant virgule dans vos tableaux de données en ce sens qu'il devrait être un élément supplémentaire! En d'autres termes:
est 3 dans Firefox/Chrome/Safari, mais c'est 4 dans Internet Explorer. Lorsque vous essayez d'accéder à cet élément, le navigateur vous donne
undefined
.Eh bien, c'est certainement mauvais pour IE avant la version 8, et je me méfie sujet de travail dans IE8. Je vais essayer cependant.
Eh bien oui, vous avez raison, alléluia. IE8 ne semblent pas à l'esprit. Cependant, si je flip IE8 en mode IE7, puis il se plaint.
Je ne m'inquiète pas sur IE7 et plus tôt. J'ai seulement besoin de le faire fonctionner sous IE8. 🙂 Je peux résoudre ce problème, bien sûr, mais le principal problème est toujours là.
Réponse de mise à jour 🙂
OriginalL'auteur Pointy