2012-08-31 87 views
0

在IE7中遇到了一系列與運行JavaScript的兼容性問題有關的問題。我使用jqplot來生成數字,這在Chrome和IE8中效果很好,但在IE7中無法使用。jqplot在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

一個打開一個你的選擇,直到它打破了:P – jbabey

+0

互聯網不在IE7中工作得很好... – Timm

+0

@jbabey:測試過。只有傳說選項適用... –

回答

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最後一次,我最後不得不以確保它是最新版本。

鏈接:http://code.google.com/p/explorercanvas/downloads/list

+0

謝謝!這是','問題! –

+0

我最近在使用Flot時遇到了同樣的問題。這確實是一個痛苦的想法。很高興幫助! =) – Chase

+0

你比較了Jqplot和Flot或類似的東西,如谷歌情節? –

0

the docs

canvas標籤和jqPlot大多數瀏覽器上運行良好。所有canvas jqPlot使用的功能在Firefox 3.5+,Safari 4+, Chrome 8.0+,Opera 10+和IE 9+上受支持。 Google的excanvas.js庫支持通過 支持IE 6-8。

你有說excanvas.js庫嗎?如果你這樣做了,更多的功能可能會起作用。

+0

我已經包含「<! - [if lt IE 9]> 」in my HTML。但它並沒有解決問題... –

+0

如果我是你,我會很高興它的工作原理,文檔清楚地表明,所有功能的工作在IE9 +,而不是IE7 – jbabey

+0

感謝您的評論。蔡斯幫助我發現這是逗號問題。 –

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 --> 
+0

感謝您的建議。我將清理我的代碼的開始部分。在我的情況下,問題是由最後一個元素後面的逗號引起的 –

相關問題