【问题标题】:FusionCharts 3.2.1 - FusionCharts._fallbackJSChartWhenNoFlash() not workingFusionCharts 3.2.1 - FusionCharts._fallbackJSChartWhenNoFlash() 不工作
【发布时间】:2012-04-05 13:59:47
【问题描述】:

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

【问题讨论】:

  • 图表是否在 Flash 中呈现?

标签: javascript extjs fusioncharts


【解决方案1】:

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

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

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

  1. 确保您拥有随 FusionCharts 包提供并保存在 `FusionCharts.js` 文件旁边的所有随附 JavaScript 文件。
  2. 由于 JavaScript 图表需要额外的 JS 文件,因此它们会在需要时动态加载。但是,您的情况可能会失败;尝试手动将 JavaScript 文件添加到包含FusionCharts.js 的页面头部post
  3. 如果您的浏览器调试/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});

    上面的代码应该适合你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多