我正在使用FusionCharts 3.2.1,并且我想在浏览器中未安装Flash播放器时在javascript中呈现图表。我正在调用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 :(得分:1)
您是否强制要求坚持使用FusionCharts 3.2.1?如果您升级到最新版本(如果您已经是客户则免费),此问题将得到解决。
自 FusionCharts 3.2.2 以来,当Flash Player不可用时,该组件会自动呈现JavaScript图表,您无需显式调用FusionCharts._fallbackJSChartWhenNoFlash();
实际上,此方法已从最新的API。
但是,如果您仍然希望坚持v3.2.1,我建议您首先查看以下内容:
FusionCharts.js
答案 1 :(得分:-2)
似乎FusionCharts构造函数的参数不正确。
var myChart = new FusionCharts("FusionCharts/Column3D.swf", "myChartId", "400", "300", "chartContainer", {dataFormat : "json", dataSource : chartDataJSON});
以上代码应该适合您。