有一系列与IE7中运行JavaScript的兼容性问题相关的问题。我正在使用jqplot生成数字,这在Chrome和IE8中运行良好,但在IE7中不起作用。
要诊断,我只运行最简单的代码$.jqplot('chart1', s1)
,它可以在IE7中运行。所以我认为问题在于所有选项(传说除外)。有人能给我一些建议吗? IE7只接受某种类型的语法吗?
CODE和Demo:
<div id="chart1" style="margin-top:20px; margin-left:20px; width:650px; height:400px;"></div>
<!--[if lt IE 9]>
<script src="http://www.prioritymarketers.com/jqplot/src/excanvas.min.js"></script>
<![endif]-->
<script>
$.jqplot.config.enablePlugins = true;
var ms= 2
var s1 =[[5.0, 23.0, 131.0, 779.0, 4667.0, 27995.0, 167963.0, 1007771.0, 6046619.0, 36279707.0], [13.0, 85.0, 517.0, 3109.0, 18661.0, 111973.0, 671845.0, 4031077.0, 24186469.0, 145118821.0]]
L = [{label: 'Stage 1'}];
var i = 2
while (i <= ms) {
L.push({label: 'Stage' + i});
i++;
}
$.jqplot('chart1', s1, {
seriesDefaults: {
showMarker: false,
pointLabels: {
show: false
},
},
series: L,
axes: {
xaxis: {
label: 'Time units',
pad: 0,
},
yaxis: {
label: 'Number of individuals',
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
pad: 0
}
},
legend: {
show: true,
location: 'nw',
placement: 'inside',
fontSize: '11px'
}
})
</script>
答案 0 :(得分:2)
我注意到IE在一组选项中的最后一个元素之后有逗号时不是一个大粉丝。
示例:强>
此:
seriesDefaults: {
showMarker: false,
pointLabels: {
show: false
},
},
会变成:
seriesDefaults: {
showMarker: false,
pointLabels: {
show: false
}},
微妙的差异,但它可能会或可能不会解决您的问题。
尝试将绘图功能更改为:
$.jqplot('chart1', s1, {
seriesDefaults: {
showMarker: false,
pointLabels: {
show: false
}
},
series: L,
axes: {
xaxis: {
label: 'Time units',
pad: 0
},
yaxis: {
label: 'Number of individuals',
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
pad: 0
}
},
legend: {
show: true,
location: 'nw',
placement: 'inside',
fontSize: '11px'
}
})
同样,上次我使用了excanvas我最终还是要确保它是最新版本。
答案 1 :(得分:0)
来自the docs
canvas标签和jqPlot在大多数浏览器上运行良好。所有画布 Firefox 3.5+,Safari 4+支持jqPlot使用的功能, Chrome 8.0 +,Opera 10+和IE 9+。通过支持IE 6 - 8 谷歌的excanvas.js库。
你说过excanvas.js
图书馆吗?如果你这样做,可能会有更多的功能。
答案 2 :(得分:0)
它适用于其他版本的IE吗?我有类似的问题,但在我的情况下,它不适用于IE7和IE8。我不记得我是如何修理它的。
如果检查jquery.jqplot.js,有一行确保小于IE9的版本使用excanvas.js
确保有一行如下
* > <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
否则尝试按此顺序包含文件
<link rel="stylesheet" type="text/css" href="../libs/jqplot/jquery.jqplot.css" />
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../libs/jqplot/excanvas.js"></script><![endif]-->
<!-- BEGIN: load jqplot -->
<script language="javascript" type="text/javascript" src="../libs/jqplot/jquery.jqplot.js"></script>
<script language="javascript" type="text/javascript" src="../libs/jqplot/jqplot.barRenderer.js"></script>
<script language="javascript" type="text/javascript" src="../libs/jqplot/jqplot.pieRenderer.js"></script>
<script language="javascript" type="text/javascript" src="../libs/jqplot/jqplot.highlighter.js"></script>
<script language="javascript" type="text/javascript" src="../libs/jqplot/jqplot.pointLabels.js"></script>
<script language="javascript" type="text/javascript" src="../libs/jqplot/jqplot.canvasTextRenderer.js"></script>
<script language="javascript" type="text/javascript" src="../libs/jqplot/jqplot.categoryAxisRenderer.js"></script>
<script language="javascript" type="text/javascript" src="../libs/jqplot/jqplot.canvasAxisLabelRenderer.js"></script>
<!-- END: load jqplot -->