0

我正在使用 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);
            }
}
4

2 回答 2

1

您是否必须坚持使用 FusionCharts 3.2.1?如果您升级到最新版本(如果您已经是客户,则免费),此问题将得到解决。

FusionCharts 3.2.2开始,当 Flash Player 不可用时,组件会自动呈现 JavaScript 图表,您无需显式调用FusionCharts._fallbackJSChartWhenNoFlash();。事实上,该方法已从最新 API 中删除。

但是,如果您仍然希望坚持使用 v3.2.1,我建议您首先查看以下内容:

  1. 确保您拥有 FusionCharts 包随附的所有随附 JavaScript 文件,并保存在 FusionCharts.js 文件旁边。
  2. 由于 JavaScript 图表需要额外的 JS 文件,因此它们会在需要时动态加载。但是,您的情况可能会失败;尝试手动将 JavaScript 文件添加到包含FusionCharts.js
  3. 如果您的浏览器调试/js 控制台上有任何 JavaScript 错误,请从错误消息中查找提示。FusionCharts 文档和产品论坛可能会帮助您找出错误消息的原因。
  4. 作为预防措施,请确保通过 JSON 传递的 swfName 大小写正确。FusionCharts 3.2.1 JavaScript 图表存在 swfUrl 区分大小写的问题。
于 2012-04-06T06:48:51.307 回答
-2

似乎 FusionCharts 构造函数的参数顺序不正确。

来自FusionCharts 文档

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

上面的代码应该适合你。

于 2012-04-06T06:33:14.597 回答