You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET升级Highcharts至11.4.7后图表加载失败,报TypeError错误

解决Highcharts升级至11.4.7后.NET应用中图表加载报错问题

针对你遇到的Uncaught TypeError: Cannot read properties of undefined (reading 'length')错误,结合代码在JSFiddle正常运行但.NET环境报错的场景,可从以下方向排查解决:

1. 确认Highcharts脚本加载的正确性

  • 确保页面仅加载11.4.7版本的Highcharts核心脚本,彻底移除旧版本(v8.2)的脚本引用,避免版本冲突。
  • 保证脚本加载顺序在图表渲染代码之前,比如将<script src="https://code.highcharts.com/11.4.7/highcharts.js"></script>放在页面<head>标签内,或页面底部但在渲染函数之前。

2. 修正渲染代码中的潜在问题

(1)修正重复的函数名

渲染后的函数名为createChartchart()(重复了"chart"),虽在JSFiddle可正常执行,但在.NET页面中可能存在函数名冲突或解析异常,建议修改为简洁名称:

// 修正函数名
function createChart() {
    var ChartOptions = {
        "tooltip":{"pointFormat":"{point.y} - {point.custom1} - {point.custom2}"},
        "chart":{"renderTo":"chart"},
        "series":[{/* 原有series数据保持不变 */}],
        "yAxis":[{/* 原有yAxis配置保持不变 */}],
        "subtitle":{"text":"Source: WorldClimate.com","x":-20.0},
        "title":{"text":"Monthly Average Temperature","x":-20.0},
        "xAxis":[{/* 原有xAxis配置保持不变 */}],
        "legend":{"verticalAlign":"middle","layout":"vertical","align":"right","borderWidth":0.0}
    };
    Highcharts.chart("chart", ChartOptions);
}

// 调整页面加载监听的调用
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", createChart);
} else if (document.attachEvent) {
    document.attachEvent("onreadystatechange", function(){
        if (document.readyState === "complete"){
            document.detachEvent("onreadystatechange", arguments.callee);
            createChart();
        }
    });
}

(2)检查DOM元素存在性

在创建图表前先确认目标DOM元素已加载完成,避免因页面布局(如母版页异步加载)导致元素未就绪:

function createChart() {
    var chartEl = document.getElementById("chart");
    if (!chartEl) return; // 元素不存在时直接返回,避免报错

    var ChartOptions = {
        // 原有配置保持不变
    };
    Highcharts.chart(chartEl, ChartOptions);
}

3. 排除自定义字段的兼容性问题

你的tooltip配置中引用了{point.custom1}和{point.custom2},但渲染后的series数据并未包含这两个字段。Highcharts 11.x对未定义字段的处理逻辑可能和v8.x不同,建议先注释这两个字段,测试基础图表能否加载:

"tooltip":{
    // 先简化tooltip,测试基础功能
    "pointFormat":"{point.y}"
    // "pointFormat":"{point.y} - {point.custom1} - {point.custom2}"
},

4. 验证.NET Highcharts包装器的兼容性

你使用的HighchartsRenderer等.NET包装器可能未适配Highcharts 11.4.7版本,导致生成的配置代码存在兼容性问题。可尝试绕过包装器,直接在页面中编写纯JS的Highcharts配置,测试是否能正常加载,以此判断是否是包装器的问题。


内容的提问来源于stack exchange,提问作者Anju Raman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:14:53