2012-04-05 66 views
0

我使用的是FusionCharts 3.2.1,並且我想在Flash Player未安裝在瀏覽器中禁用時使用JavaScript呈現圖表。我打電話給方法FusionCharts._fallfallJSChartWhenNoFlash()但沒有發生。FusionCharts 3.2.1 - FusionCharts._fallbackJSChartWhenNoFlash()不起作用

function updateChart(chartDataJSON) { 
     FusionCharts._fallbackJSChartWhenNoFlash(); 
      var currentSwfName = 'MSCombi2D.swf'; 
      if (chartDataJSON.swfName) { 
       currentSwfName = chartDataJSON.swfName; 
      } 
      if (prevSwfName != currentSwfName) { 
       prevSwfName = currentSwfName; 
       var contextPath = document.getElementById('contextPath').value; 
       var swfUrl = contextPath + '/charts/' + currentSwfName; 

       if (FusionCharts('residenceChart')) { 
        FusionCharts('residenceChart').dispose(); 
       } 

       new FusionCharts({ 
        id: 'residenceChart', 
        swfUrl:swfUrl, 
        renderAt:'consumptionChartDiv', 
        dataFormat:'json', 
        dataSource: chartDataJSON, 
        registerWithJS: 1, 
        width: 730, 
        height: 300, 
        debugMode: 0 
       }).render(); 
      } else { 
       FusionCharts('residenceChart').setJSONData(chartDataJSON); 
      } 
} 
+0

圖表是否在Flash中呈現? – 2012-04-06 06:15:13

+0

@HrishikeshChoudhari是的。 – spauny 2012-04-06 06:17:33

回答

1

您是否堅持使用FusionCharts 3.2.1?如果您升級到最新版本(如果您已經是客戶,則免費),此問題將得到解決。

由於FusionCharts的3.2.2,該組件會自動顯示JavaScript圖表時的Flash Player不可用,你不會需要顯式調用FusionCharts._fallbackJSChartWhenNoFlash();事實上,這種方法是從最新的API中刪除。

但是,如果您仍然希望堅持到V3.2.1,我建議你先看看下面:

  1. 確保您擁有所有的一切與FusionCharts的包,並提供附帶的JavaScript文件保存在`FusionCharts.js``文件旁邊。
  2. 因爲JavaScript圖表需要額外的JS文件,所以它們會在需要時動態加載。然而,你的情況可能會失敗;嘗試手動將JavaScript文件添加到頁頭包含FusionCharts.js
  3. 如果您的瀏覽器debug/js控制檯上有任何JavaScript錯誤,請從錯誤消息中查找提示。 FusionCharts文檔和產品論壇可能會幫助您找出錯誤消息的原因。
  4. 作爲一項預防措施,請確保通過JSON傳遞的swfName是正確的。 FusionCharts 3.2.1 JavaScript圖表存在swfUrl區分大小寫的問題。
-2

看來FusionCharts構造函數的參數沒有正確的順序。

FusionCharts Documentation

var myChart = new FusionCharts("FusionCharts/Column3D.swf", "myChartId", "400", "300", "chartContainer", {dataFormat : "json", dataSource : chartDataJSON});

上面的代碼應該爲你工作。