【问题标题】:Highcharts error #13 unless I run under IE compatibility view?Highcharts 错误 #13 除非我在 IE 兼容性视图下运行?
【发布时间】:2012-12-03 23:30:29
【问题描述】:

我正在开发一个使用 WCF 服务(.svc 而不是 .asmx)将 JSON 数据发送到 highcharts 的 asp 应用程序。如果我使用 ie 兼容性视图,它似乎才有效。如果我没有收到消息:

Microsoft JScript 运行时错误:Highcharts 错误 #13:http://www.highcharts.com/errors/13

错误号 13 以及在线搜索表明我没有合适的 DIV 租用者,但它存在。有什么想法可以让我的应用程序在不兼容的视图中工作?

谢谢!

这里有一些代码。我有两张图表并排放置,一张处理“低”周转项目,另一张处理高周转项目。这是低项图表,因此它呈现给命名的 containerLow。

var lowchart = new Highcharts.Chart({
        chart: {
            renderTo: 'containerLow'
        },
        xAxis: {                
        },
        plotOptions: {
            series: {
                cursor: 'pointer',
                point: {
                    events: {
                        click: function () {
                            //ChartClicked(this.x, this.y, this, this.series.name, this.series.color, this.index);
                            ChartClicked(this, 'Low');                                
                        }
                    }
                }
            }
        },
        tooltip: {

            formatter: function () {
                var txt = "$= <b>" + this.point.x + "</b><br/>"
                            + "Wait = <b>" + this.point.y + "</b><br/>"
                            + "Other DB Info for future Bow Wave, etc. <b><br/>"
                            + "Avg Fill Rate = <b>" + this.point.config.averageFillRate + "</b><br/>"
                            + "Average On Hand = <b>" + this.point.config.averageOnHand + "</b><br/>"
                            + "Average Workload = <b>" + this.point.config.averageWorkload + "</b><br/>"
                return txt;
            }
        }
    }); //end chart

我的网络服务得到一个包含多个系列的 JSON 字符串。在页面加载时,我调用 Web 服务(高低项目两次)并循环遍历系列数组以绘制多条曲线。

function pageLoad() {
    JSONGraphing.GetDataDB(getParameterByName("id"), 2, OnGetDataCompleteLow, OnError);
    JSONGraphing.GetDataDB(getParameterByName("id"), 1, OnGetDataCompleteHigh, OnError);
}

这里是低图的回调函数之一的示例。

 function OnGetDataCompleteLow(result) {
    var webServiceData = eval("(" + result + ")");

    for (var i = 0; i < webServiceData.series.length; i++) {
        lowchart.addSeries({
            data: webServiceData.series[i].data
        });
    }

    lowchart.yAxis[0].setTitle({
        text: 'Wait time in Days'
    });

    lowchart.xAxis[0].setTitle({
        text: 'Investment in Dollars'
    });

    lowchart.setTitle({ text: 'Low Frequency Items' });

}

非常感谢任何和所有帮助。

【问题讨论】:

  • 一些代码可能会帮助我们正确回答。
  • 渲染后执行此脚本containerLow.
  • 里卡多,很抱歉没有完全关注你。 “containerLow”是我的
    图表结束。你能详细说明一下吗?如果是不同的脚本,是哪一个?谢谢!
  • @RichP 当然,看看我的答案。

标签: highcharts ie-compatibility-mode


【解决方案1】:

要确保容器存在,您必须在渲染后运行代码,可以通过以下方式完成。

document.ready(function() {
    // your code
});

<div id="container"> </div>
<script type="type="text/javascript"">
    // your code here
</script>

(function() {
    // your code here
})

【讨论】:

  • 第二个成功了。无法让第一或第三工作。第一个函数中的一个音符有一个类型-o。感谢您的帮助!
猜你喜欢
相关资源
最近更新 更多
热门标签